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 credentials
- MCP client (such as Claude Desktop)
- Visit protocols.io/developers
- Sign in to your account
- Navigate to the API Clients section
- Click ADD CLIENT to create a new application
- Configure and copy the credentials based on your use case:
- Client Access Token: Copy the generated token for simple authentication (suitable for local STDIO transport)
- Client ID and Client Secret: For OAuth 2.0 authentication (suitable for remote HTTP/SSE transport):
- Set the redirect URL to
{your_mcp_base_url}/auth/callback - Copy the Client ID and Client Secret
- Set the redirect URL to
docker run -d -p 8000:8000 -e PROTOCOLS_IO_CLIENT_ID="your_client_id" -e PROTOCOLS_IO_CLIENT_SECRET="your_client_secret" -e PROTOCOLS_IO_MCP_BASE_URL="https://example.com" --name protocols-io-mcp --restart always ghcr.io/hqn21/protocols-io-mcp:latestThe server will be accessible at http://0.0.0.0:8000/mcp with HTTP transport
pip install protocols-io-mcpexport PROTOCOLS_IO_CLIENT_ACCESS_TOKEN="your_client_access_token"export PROTOCOLS_IO_CLIENT_ID="your_client_id"
export PROTOCOLS_IO_CLIENT_SECRET="your_client_secret"
export PROTOCOLS_IO_MCP_BASE_URL="https://example.com"Run the MCP server with various transport options:
# Default: STDIO transport
protocols-io-mcp
# HTTP transport
protocols-io-mcp --transport http --host 127.0.0.1 --port 8000
# SSE transport
protocols-io-mcp --transport sse --host 127.0.0.1 --port 8000Usage: 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-mcppackage globally using pip. - Change the
commandfield in yourclaude_desktop_config.jsonto the full path of theprotocols-io-mcpexecutable. 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:
pytestThis project is licensed under the MIT License. See the LICENSE file for details.