{
  "markdown": "[gradle]: https://gradle.org/\r\n[java]: https://www.oracle.com/java/index.html\r\n[git]: https://git-scm.com/\r\n[make]: https://www.gnu.org/software/make\r\n[cytoscape]: https://cytoscape.org/\r\n[mcp]: https://modelcontextprotocol.io/\r\n[ndex]: https://www.ndexbio.org/\r\n\r\n# Cytoscape MCP Server\r\n\r\nAn embedded [Model Context Protocol (MCP)][mcp] server for [Cytoscape Desktop][cytoscape], packaged as a Cytoscape App. AI clients such as Claude Desktop connect to Cytoscape over HTTP and invoke tools that control the desktop application directly — loading networks, setting active views, and more.\r\n\r\n**NOTE:** This app is experimental. The interface and available tools are subject to change.\r\n\r\n## Architecture\r\n![Cytoscape MCP Desktop](docs/desktopmcp.png)\r\n\r\n## How It Works\r\n\r\nOnce installed, the app publishes an MCP endpoint inside Cytoscape's existing CyREST HTTP server — AI clients connect to the MCP endpoint with Streamable HTTP transport and call MCP tools which drive activity on the Cytoscape desktop display. \r\n\r\nThe app also adds two visual indicators to the Cytoscape Desktop UI:\r\n\r\n### MCP toolbar button\r\na bold **MCP** button in the bottom-left status bar. The label is green when the MCP server is running and red when it is not. Clicking it opens the Agent Configuration dialog which displays the full MCP url and connection instructions for all supported agents.\r\n\r\n### Task History entries\r\nevery MCP tool invocation is recorded in Cytoscape's Task History panel (**View > Show Task History**), so you can see exactly which tools an agent called and when.\r\n\r\n```\r\nAI Agent──► HTTP──► http://localhost:{rest.port}/mcp ──► Cytoscape Desktop\r\n                                                               └── load network from NDEx or file\r\n                                                               └── get loaded network views\r\n                                                               └── set current network view\r\n                                                               └── create network view\r\n```\r\n\r\n## Requirements\r\n\r\n* [Cytoscape][cytoscape] 3.10 or above\r\n* Internet connection (for loading networks from [NDEx][ndex])\r\n* An MCP-compatible AI client that also supports the Streamable HTTP transport(not SSE which is [deprecated as of 02/2025](https://auth0.com/blog/mcp-streamable-http/)) (e.g. Claude Desktop)\r\n\r\n## Try it! \r\n\r\n### Install from the Cytoscape App Store (recommended)\r\n\r\nInstall **Cytoscape MCP Server** from the App Store — this is the MCP server itself, and everything\r\nelse on this page depends on it being installed and running:\r\n\r\n* <https://apps.cytoscape.org/apps/cytoscapemcpserver>\r\n\r\nOr from inside Cytoscape: **Apps > App Manager**, search for `Cytoscape MCP Server`, and install.\r\n\r\n### Install a JAR manually\r\n\r\nAlternatively, get the app jar:\r\n* Download the latest `cytoscape-mcp-<VERSION>.jar` from the [Releases](../../releases) page.\r\n* or [Build](#building-from-source) the jar  \r\n\r\nThen:\r\n1. Open Cytoscape Desktop.\r\n2. Navigate to **Apps > App Manager > Install from File**.\r\n3. Select the file path to the MCP App JAR and restart Cytoscape if prompted.\r\n\r\nAfter startup, the MCP status can be viewed via the [MCP button](#mcp-toolbar-button) in the status bar.\r\n\r\n### Connecting an Agent to Cytoscape Desktop MCP\r\nSee [docs/AgentConfiguration.md](docs/AgentConfiguration.md) for step-by-step setup instructions for Claude Desktop, Claude Code, GitHub Copilot (VS Code), GitHub Copilot CLI, and OpenAI Codex CLI.\r\n\r\n### Cytoscape Desktop MCP Diagnostics\r\n* Most agents will have a `/mcp` command or UI settings panel which will show status of connection to the MCP server and a list of tools currently published by this server, check to see if it is denoted as 'connected'.\r\n* Check the MCP health endpoint  \r\n  ```bash\r\n  curl http://localhost:{rest.port}/mcp/health\r\n  ```\r\n  Replace `{rest.port}` with Cytoscape's CyREST port (shown in the Agent Configuration dialog). You should see `{\"status\":\"ok\",\"transport\":\"mcp-streamable-http\"}`. A \"connection refused\" error means Cytoscape is not running or the port is wrong.\r\n* Use external MCP introspection tools against the Desktop MCP server running at `http://localhost:{rest.port}/mcp` to validate or view current tools catalog - [modelcontextprotocol/inspector](https://github.com/modelcontextprotocol/inspector?tab=readme-ov-file#running-the-inspector)\r\n\r\n### Building from source\r\nIf you want to build the app jar directly from source instead of using release jars.\r\n\r\nRequirements:\r\n* [Java][java] 17 with JDK\r\n* [Git][git]\r\n* [Make][make]\r\n\r\n```bash\r\ngit clone https://github.com/cytoscape/cytoscape-desktop-mcp\r\ncd cytoscape-desktop-mcp\r\nmake install\r\n```\r\n\r\nThe JAR is produced at `build/libs/cytoscape-mcp-<VERSION>.jar`.\r\n\r\nFor a full list of build targets:\r\n```bash\r\nmake help\r\n```\r\n\r\n### Release tags\r\n\r\nTwo components ship from this repo on separate tag namespaces:\r\n\r\n| Component | Tag | Produces |\r\n|-----------|-----|----------|\r\n| Cytoscape App (the MCP server) | `vX.Y.Z` | `cytoscape-mcp-<VERSION>.jar`, plus a convenience copy of the `.mcpb` |\r\n| MCPB bridge (`claude-extension/`) | `mcpb-vX.Y.Z` | `cytoscape-mcp.mcpb`, and publishes to npm and the MCP Registry |\r\n\r\nThe bridge is versioned independently of the app because the bridge is distinctly separate deliverable with separate source tree for it to provide a stdio-to-http transport bridge that some agents may use. See\r\n[registry/README.md](registry/README.md) for the release runbook.\r\n\r\n## Cytoscape Desktop MCP Tool Catalog\r\nThe MCP server provides a human-readable catalog of every tool registered on the server formatted as Markdown with complete MCP Protocol JSON schema definitions for each tool's input and output. You can obtain the catalog through multiple options:\r\n*  When the app is loaded in Desktop, at runtime the MCP server exposes `<CyRest Url>/mcp/manifest` endpoint which can be retrieved by browser or command line\r\n  ```bash\r\n  curl http://localhost:{rest.port}/mcp/manifest\r\n  ```\r\n* After any build locally, `make build` will generate the MCP manifest based on current code into a static file at `build/generated/manifest/MCPManifest.md` for same review.\r\n* Static copy of the catalog is also stored in repo at [MCPManifest.md](./MCPManifest.md)\r\n\r\n### Activate Cytoscape Desktop MCP tools from Agent prompts:\r\nInvoking the tools requires some prompt engineering to provide key words or phrases which will activate the LLM to choose usage of a tool. Check out [MCPManifest.md](./MCPManifest.md) which contains 3 to 4 examples of Prompt snippets on each tool's description as reference of how to trigger LLM activation. \r\n\r\n* an example of a simple prompt which will lead the LLM to reason over the available tools as a whole and orchestrate their usage as building blocks into a sequence to reach the requested end result:\r\n  ```\r\n   > open a network using cytoscape desktop\r\n  ```\r\n\r\n\r\n## Cytoscape Desktop MCP Configuration properties\r\n\r\nProperties are editable at runtime via **Edit > Preferences > Properties > cytoscapemcp**:\r\n\r\n| Property | Default | Description |\r\n|----------|---------|-------------|\r\n| `mcp.ndexbaseurl` | `https://www.ndexbio.org` | NDEx base URL (takes effect immediately) |\r\n\r\n## Documentation\r\n\r\nFull documentation is in the `docs/` directory:\r\n\r\n- [Agent Configuration](docs/AgentConfiguration.md) — connecting Claude Desktop, Claude Code, GitHub Copilot, Codex CLI, and others\r\n- [User Manual](docs/UserManual.md) — configuration reference and available tools\r\n- [Tutorial](docs/Tutorial.md) — end-to-end walkthrough: install, connect, load a network\r\n- [FAQ](docs/FAQ.md) — common questions and troubleshooting\r\n\r\n## COPYRIGHT AND LICENSE\r\n\r\n[Click here](LICENSE)\r\n\r\n## Acknowledgements\r\n\r\n* TODO: denote funding sources\r\n",
  "bytes": 7788,
  "sha": "32333ded10b72e1b8d85de96dafba872c514b7ddd74b3e0068571a8fb191820a",
  "repo_slug": "cytoscape/cytoscape-desktop-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_cytoscape_cytoscape_desktop_mc_e79d39ad/readme"
}