Model Context Protocol (MCP) server for Code Ocean.
This MCP server provides tools to search and run capsules and pipelines, and manage data assets.
- Install
uvfrom Astral or the GitHub README - Install Python 3.10 or newer using
uv python install 3.10(or a more recent version) - Generate a Code Ocean access token. Follow instructions in the Code Ocean user guide.
Each release of this Code Ocean MCP Server is tested and verified against a specific minimum version of the Code Ocean platform API. Generally, this minimum version is the latest Code Ocean version at the time of the MCP Server release. We recommend ensuring your MCP Server dependency is pinned to a version compatible with your Code Ocean deployment. For details on when the minimum Code Ocean platform version changes, see the CHANGELOG.
Here's an example VS Code MCP server configuration:
{
...
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "codeocean-token",
"description": "Code Ocean API Key",
"password": true
}
],
"servers": {
"codeocean": {
"type": "stdio",
"command": "uvx",
"args": ["codeocean-mcp-server"],
"env": {
"CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
"CODEOCEAN_TOKEN": "${input:codeocean-token}",
"AGENT_ID": "VS Code"
}
}
},
}
}- Open the
claude_desktop_config.jsonfile:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Under the top-level "mcpServers" object, add a "codeocean" entry. For a stdio transport (child-process) it looks like this:
{
"mcpServers": {
"codeocean": {
"command": "uvx",
"args": ["codeocean-mcp-server"],
"env": {
"CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
"CODEOCEAN_TOKEN": "<YOUR_API_KEY>",
"AGENT_ID": "Claude Desktop"
}
}
}
}Cline stores all of its MCP settings in a JSON file called cline_mcp_settings.json. You can edit this either through the GUI (“Configure MCP Servers” in the MCP Servers pane) or by hand:
- Open Cline and click the MCP Servers icon in the sidebar.
- In the “Installed” tab, click Configure MCP Servers → this opens your cline_mcp_settings.json.
- Add a "codeocean" server under the "mcpServers" key. For stdio transport:
{
"mcpServers": {
"codeocean": {
"command": "uvx",
"args": ["codeocean-mcp-server"],
"env": {
"CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
"CODEOCEAN_TOKEN": "<YOUR_API_KEY>",
"AGENT_ID": "Cline"
},
"alwaysAllow": [], // optional: list of tools to auto-approve
"disabled": false // ensure it’s enabled
}
}
}- Save the file. Cline will automatically detect and launch the new server, making your Code Ocean tools available in chat .
Roo Code’s MCP support is configured globally across all workspaces via a JSON settings file or through its dedicated MCP Settings UI
- Click the MCP icon in Roo Code’s sidebar. 
- Select Edit MCP Settings (opens cline_mcp_settings.json). 
- Under "mcpServers", add:
{
"mcpServers": {
"codeocean": {
"command": "uvx",
"args": ["codeocean-mcp-server"],
"env": {
"CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
"CODEOCEAN_TOKEN": "<YOUR_API_KEY>",
"AGENT_ID": "Roo Code"
}
}
}
}- Save and restart Roo Code; your Code Ocean tools will appear automatically.
- Locate cline_mcp_settings.json (in your home directory or workspace). 
- Insert the same "codeocean" block under "mcpServers" as above.
- Save and restart.
Cursor stores MCP servers in a JSON file at either ~/.cursor/mcp.json (global) or {project}/.cursor/mcp.json (project-specific) .
- Open .cursor/mcp.json (or create it if missing). 
- Add under "mcpServers":
{
"mcpServers": {
"codeocean": {
"command": "uvx",
"args": ["codeocean-mcp-server"],
"env": {
"CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
"CODEOCEAN_TOKEN": "<YOUR_API_KEY>",
"AGENT_ID": "Cursor"
}
}
}
}- Save the file. Cursor will automatically detect and launch the new server on next start. 
Windsurf (Cascade) uses mcp_config.json under ~/.codeium/windsurf/ (or via the Cascade → MCP Servers UI) .
- Open your Windsurf Settings and navigate to Cascade → MCP Servers, then click View Raw Config to open mcp_config.json. 
- Insert the following under "mcpServers":
{
"mcpServers": {
"codeocean": {
"command": "uvx",
"args": ["codeocean-mcp-server"],
"env": {
"CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
"CODEOCEAN_TOKEN": "<YOUR_API_KEY>",
"AGENT_ID": "Windsurf"
}
}
}
}- Save and restart Windsurf (or hit “Refresh” in the MCP panel).
You can test the MCP server locally during development with MCP Inspector:
npx @modelcontextprotocol/inspector uv tool run codeocean-mcp-serverThis will start a web server where you can:
- View available tools and resources
- Test tool calls interactively
- See server logs and responses
The MCP server supports custom log formatting through the LOG_FORMAT environment variable. This allows you to control the format of log messages output by the server.
Example Format Strings: "%(asctime)s %(levelname)s [%(name)s] %(message)s".
If LOG_FORMAT is not set, the server uses FastMCP's default logging configuration.