Skip to main content

An MCP server that enables MCP clients like Claude Desktop to interact with data from protocols.io.

Project description

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 keyword
  • get_protocol - Get basic protocol information by ID
  • get_protocol_steps - Get detailed steps for a specific protocol
  • get_my_protocols - Retrieve all protocols from your account

Protocol Creation and Management

  • create_protocol - Create a new protocol with title and description
  • update_protocol_title - Update the title of an existing protocol
  • update_protocol_description - Update the description of an existing protocol

Step Management

  • set_protocol_steps - Replace all steps in a protocol
  • add_protocol_step - Add a single step to the end of a protocol
  • delete_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

  1. Visit protocols.io/developer
  2. Sign in to your account
  3. Navigate to the API Clients section
  4. Click ADD CLIENT to create a new application
  5. Copy the generated credentials:
    • Client Access Token (for STDIO transport)
    • Client ID and Client Secret (for HTTP/SSE transport)

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:

  1. Make sure you have installed the protocols-io-mcp package globally using pip.
  2. Change the command field in your claude_desktop_config.json to the full path of the protocols-io-mcp executable. You can find the path by running:
    which protocols-io-mcp
    
  3. 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

protocols_io_mcp-1.0.2.tar.gz (98.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

protocols_io_mcp-1.0.2-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file protocols_io_mcp-1.0.2.tar.gz.

File metadata

  • Download URL: protocols_io_mcp-1.0.2.tar.gz
  • Upload date:
  • Size: 98.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for protocols_io_mcp-1.0.2.tar.gz
Algorithm Hash digest
SHA256 defabeb4e06fe39145e93daaf59f859ef33a44c4b9ee814e44b7b4be85a790bf
MD5 ed073552efd83761ee6d5a8e8551f9fd
BLAKE2b-256 e6c7f77b4b8c7a089a06aeeb97c2c330f28bbdabe9afd6e865216b8e0f02db59

See more details on using hashes here.

Provenance

The following attestation bundles were made for protocols_io_mcp-1.0.2.tar.gz:

Publisher: publish-pypi.yml on hqn21/protocols-io-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file protocols_io_mcp-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for protocols_io_mcp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dad040a4be2d9ac5ec1496ab552c16694bddd9bf1c3abdd2bf8a5b069fc9e9fa
MD5 0849ab81a93cc3849f34d88c4bd3fcf2
BLAKE2b-256 6a4d4ed50feb316a859d3803ef69d23c542c7c7d94a2f9c19b702458c0342985

See more details on using hashes here.

Provenance

The following attestation bundles were made for protocols_io_mcp-1.0.2-py3-none-any.whl:

Publisher: publish-pypi.yml on hqn21/protocols-io-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page