A Model Context Protocol (MCP) server that enables MCP clients like Claude Desktop to interact with protocols.io, a popular platform for sharing scientific protocols and methods.
The server provides the following tools that can be used by MCP clients:
search_public_protocols
- Search for public protocols by keywordget_protocol
- Get basic protocol information by IDget_protocol_steps
- Get detailed steps for a specific protocolget_my_protocols
- Retrieve all protocols from your account
create_protocol
- Create a new protocol with title and descriptionupdate_protocol_title
- Update the title of an existing protocolupdate_protocol_description
- Update the description of an existing protocol
set_protocol_steps
- Replace all steps in a protocoladd_protocol_step
- Add a single step to the end of a protocoldelete_protocol_step
- Delete a specific step from a protocol
- Python 3.10 or higher
- protocols.io account with API access token
- MCP client (such as Claude Desktop)
docker run -d -p 8000:8000 -e PROTOCOLS_IO_CLIENT_ACCESS_TOKEN="your_access_token_here" --name protocols-io-mcp --restart always ghcr.io/hqn21/protocols-io-mcp:latest
pip install protocols-io-mcp
Before running the server or tests, you must set your protocols.io API access token:
export PROTOCOLS_IO_CLIENT_ACCESS_TOKEN="your_client_access_token"
To obtain an API token:
- Visit protocols.io/developer
- Sign in to your account
- Go to API clients section and add a new client
- Copy the generated client access token and set it in your environment
Run the MCP server with various transport options:
# Default: stdio transport (recommended for MCP clients)
protocols-io-mcp
# HTTP transport
protocols-io-mcp --transport http --host 127.0.0.1 --port 8000
# Server-Sent Events transport
protocols-io-mcp --transport sse --host 127.0.0.1 --port 8000
Usage: protocols-io-mcp [OPTIONS]
Run the protocols.io MCP server.
Options:
--transport [stdio|http|sse] Transport protocol to use [default: stdio]
--host TEXT Host to bind to when using http and sse
transport [default: 127.0.0.1]
--port INTEGER Port to bind to when using http and sse
transport [default: 8000]
--help Show this message and exit.
To use this server with Claude Desktop, add the following configuration to your claude_desktop_config.json
:
{
"mcpServers": {
"protocols-io": {
"command": "protocols-io-mcp",
"env": {
"PROTOCOLS_IO_CLIENT_ACCESS_TOKEN": "your_client_access_token"
}
}
}
}
This error indicates that Claude Desktop cannot find the protocols-io-mcp
command. To resolve this:
- Make sure you have installed the
protocols-io-mcp
package globally using pip. - Change the
command
field in yourclaude_desktop_config.json
to the full path of theprotocols-io-mcp
executable. You can find the path by running:which protocols-io-mcp
- Your final configuration should look like:
{ "mcpServers": { "protocols-io": { "command": "/full/path/to/protocols-io-mcp", "env": { "PROTOCOLS_IO_CLIENT_ACCESS_TOKEN": "your_client_access_token" } } } }
Ensure you have set the PROTOCOLS_IO_CLIENT_ACCESS_TOKEN
environment variable, then run:
pytest
This project is licensed under the MIT License. See the LICENSE file for details.