{
  "markdown": "# Ithura MCP server\n\n[![npm](https://img.shields.io/npm/v/ithura-mcp)](https://www.npmjs.com/package/ithura-mcp)\n[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-com.ithura%2Fmcp-8a4f6d)](https://registry.modelcontextprotocol.io/v0/servers?search=ithura)\n[![license](https://img.shields.io/npm/l/ithura-mcp)](./LICENSE)\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server for\n**[Ithura](https://ithura.com)**, a quiet project management workspace for\ndeliberate teams.\n\nPoint Claude, Cursor, or any MCP client at your Ithura workspace and let it read\nand write real work: tasks, sprints, projects, modules, wiki pages, and intake.\n\n```\n\"What is left in the current sprint?\"\n\"Create a task for the login timeout bug and put it in this sprint.\"\n\"Summarise every task that moved to Done this week.\"\n```\n\nListed in the [official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=ithura)\nas `com.ithura/mcp`.\n\n## Install\n\nNo install step. Point your MCP client at `npx`:\n\n```bash\nnpx ithura-mcp\n```\n\n### Claude Desktop / Claude Code\n\nAdd to your MCP settings (`claude_desktop_config.json`, or `.mcp.json` in a\nproject for Claude Code):\n\n```json\n{\n  \"mcpServers\": {\n    \"ithura\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ithura-mcp\"],\n      \"env\": {\n        \"ITHURA_API_KEY\": \"your-api-token\",\n        \"ITHURA_WORKSPACE_SLUG\": \"your-workspace\"\n      }\n    }\n  }\n}\n```\n\n### Cursor\n\n`~/.cursor/mcp.json` takes the same block.\n\n## Configuration\n\n| Variable | Required | Default | Notes |\n|---|---|---|---|\n| `ITHURA_API_KEY` | yes | | Workspace API token, from Settings > API tokens |\n| `ITHURA_WORKSPACE_SLUG` | yes | | The slug in your workspace URL |\n| `ITHURA_API_URL` | no | `https://api.ithura.com` | Point at your own host when self-hosting |\n\nCreate the token in Ithura under **Settings > API tokens**. It carries the\npermissions of the member who created it, so create it as a user whose access\nmatches what you want the agent to have.\n\n## Tools\n\n23 tools across the work graph:\n\n| Area | Tools |\n|---|---|\n| Projects | `list_projects`, `get_project`, `create_project`, `update_project` |\n| Tasks | `list_issues`, `get_issue`, `create_issue`, `update_issue`, `delete_issue` |\n| Comments | `list_issue_comments`, `add_issue_comment` |\n| Sprints | `list_cycles`, `create_cycle`, `add_issues_to_cycle`, `remove_issue_from_cycle` |\n| Modules | `list_modules`, `create_module`, `add_issues_to_module`, `delete_module` |\n| Metadata | `list_states`, `list_labels`, `create_label` |\n| Search | `search_workspace` |\n\nEvery tool returns JSON, so the model sees real field values rather than prose.\n\n## Notes\n\n- The API noun for a work item is `issue` in the HTTP API; the product calls\n  them **tasks**. The tool names follow the API.\n- Writes are real. Consider a token scoped to a member with limited project\n  access if you want the agent kept to a corner of the workspace.\n- Self-hosting: set `ITHURA_API_URL` to your instance and everything else works\n  unchanged.\n\n## Links\n\n- Ithura: <https://ithura.com>\n- Documentation: <https://ithura.com/docs>\n- API reference: <https://ithura.com/docs/integrations>\n\n## License\n\nMIT\n",
  "bytes": 3176,
  "sha": "731122d04b8f700bcd9d442d50c1a712f499b3250bce1bea672fa76061da5670",
  "repo_slug": "ithura/ithura-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_ithura_mcp_175d28ba/readme"
}