Protocols.io MCP Server
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.
Available Tools
The server provides the following tools that can be used by MCP clients:
Search and Retrieval
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
Protocol Creation and Management
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
Step Management
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
Requirements
- Python 3.10 or higher
- protocols.io account with API credentials
- MCP client (such as Claude Desktop)
Obtain Protocols.io API Credentials
- 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
Installation
Quick Start with Docker
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:latest
The server will be accessible at http://0.0.0.0:8000/mcp with HTTP transport
Install via pip
pip install protocols-io-mcp
Set Environment Variables
STDIO Transport
export PROTOCOLS_IO_CLIENT_ACCESS_TOKEN="your_client_access_token"
HTTP/SSE Transport
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"
Usage
Command Line Interface
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 8000
CLI Options
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.
Integration with Claude Desktop
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"
}
}
}
}
Troubleshooting
MCP protocols-io: spawn protocols-io-mcp ENOENT
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" } } } }
Development
Running Tests
Ensure you have set the PROTOCOLS_IO_CLIENT_ACCESS_TOKEN environment variable, then run:
pytest
License
This project is licensed under the MIT License. See the LICENSE file for details.
Metadata
Release files for iflow-mcp_hqn21-protocols-io-mcp 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_hqn21_protocols_io_mcp-1.0.3.tar.gz | 99.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_hqn21_protocols_io_mcp-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 110.7 kB
Release files / iflow_mcp_hqn21_protocols_io_mcp-1.0.3.tar.gz
| Download URL | iflow_mcp_hqn21_protocols_io_mcp-1.0.3.tar.gz |
|---|---|
| Size | 99.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45d717d5834707727e40a321d9f0981b05072fc9e93f62c50ce5e9cd41b738db
|
|
BLAKE2b-256 checksum How to use checksums |
6f2db5a4a7a7bd3628fb22dc30f4f5060475762612dd6864a8c74f940e89e589
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_hqn21_protocols_io_mcp-1.0.3-py3-none-any.whl
| Download URL | iflow_mcp_hqn21_protocols_io_mcp-1.0.3-py3-none-any.whl |
|---|---|
| Size | 11.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0f16e8429bbe35be6cbabd961fe25f8142b840508c9c9566e9cc76e4a0b4cd50
|
|
BLAKE2b-256 checksum How to use checksums |
39ef95615c36a39aef40df541cf4b4fa74a3b81aae5a3f59d0c210a36f0038c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|