This repository contains the registry of MCP (Model Context Protocol) servers available for ToolHive. Each server entry provides AI assistants with specialized tools and capabilities.
Think of this as a catalog of tools that AI assistants can use. Each entry in this registry represents a server that provides specific capabilities - like interacting with GitHub, querying databases, or fetching web content.
Adding your MCP server to the registry is simple! You just need to create a YAML file with some basic information about your server. We support two types of MCP servers:
- Container-based servers - Run as Docker containers
- Remote servers - Accessed via HTTP/HTTPS endpoints
Create a new folder in the registry/
directory with your server's name (use lowercase and hyphens):
registry/
└── my-awesome-server/
└── spec.yaml
Choose the appropriate format based on your server type:
Create a spec.yaml
file with this minimum information:
# Required fields - you must provide these
image: docker.io/myorg/my-server:latest # Your Docker image
description: What your server does in one sentence
transport: stdio # How your server communicates (usually "stdio")
# Recommended fields - helps users understand your server
tools:
- tool_name_1 # List the tools your server provides
- tool_name_2
repository_url: https://github.com/myorg/my-server # Where to find your code
Create a spec.yaml
file with this minimum information:
# Required fields - you must provide these
url: https://api.example.com/mcp # Your MCP server endpoint
description: What your server does in one sentence
transport: sse # Remote servers use "sse" or "streamable-http" (not "stdio")
# Recommended fields - helps users understand your server
tools:
- tool_name_1 # List the tools your server provides
- tool_name_2
repository_url: https://github.com/myorg/my-server # Where to find your code
You can add more information to help users:
# ... required fields above ...
# Tell users what environment variables they need
env_vars:
- name: API_KEY
description: Your API key from example.com
required: true
secret: true # Mark sensitive data
- name: TIMEOUT
description: Request timeout in seconds
required: false
default: "30"
# Help users find your server
tags:
- api
- integration
- productivity
# Server classification
tier: Community # or "Official" if maintained by the protocol team
status: Active # or "Beta", "Deprecated"
image: ghcr.io/github/github-mcp-server:v0.10.0
description: Provides integration with GitHub's APIs for repository management
transport: stdio
repository_url: https://github.com/github/github-mcp-server
tools:
- create_issue
- create_pull_request
- get_file_contents
- search_repositories
env_vars:
- name: GITHUB_PERSONAL_ACCESS_TOKEN
description: GitHub personal access token with appropriate permissions
required: true
secret: true
tags:
- github
- version-control
- api
tier: Official
status: Active
url: https://api.example.com/mcp/v1
description: Provides access to Example API services via MCP
transport: sse
repository_url: https://github.com/example/mcp-server
tools:
- fetch_data
- process_request
- submit_job
# Authentication headers for the remote server
headers:
- name: X-API-Key
description: API key for authentication
required: true
secret: true
# OAuth configuration (alternative to headers)
oauth_config:
issuer: https://auth.example.com
client_id: mcp-client
scopes:
- read
- write
tags:
- api
- remote
- cloud
tier: Community
status: Active
This tells ToolHive how to communicate with your server:
For container-based servers:
stdio
- Standard input/output (most common)sse
- Server-sent eventsstreamable-http
- HTTP streaming
For remote servers:
sse
- Server-sent events (recommended)streamable-http
- HTTP streaming- Note: Remote servers cannot use
stdio
If you're not sure, use stdio
for containers and sse
for remote servers.
Official
- Maintained by the MCP team or platform ownersCommunity
- Created and maintained by the community (most servers)
Active
- Fully functional and maintainedBeta
- Still in development but usableAlpha
- Early development, may have issuesDeprecated
- No longer maintained, will be removed
For container-based servers: Yes! Your MCP server must be packaged as a Docker image and published to a registry like:
- Docker Hub (
docker.io/username/image
) - GitHub Container Registry (
ghcr.io/username/image
) - Other public registries
For remote servers: No! You just need to provide the URL endpoint where your MCP server is accessible.
After adding your entry, you can validate it:
# If you have the build tools installed
task validate
Or submit a pull request and our automated checks will validate it for you.
- Fork this repository
- Add your server entry as described above
- Submit a pull request
- We'll review and merge your addition!
For container-based servers:
- Your Docker image is publicly accessible
- The
description
clearly explains what your server does - You've listed all the tools your server provides
- Any required environment variables are documented
- Your server actually works with ToolHive
For remote servers:
- Your server endpoint is publicly accessible
- The
description
clearly explains what your server does - You've listed all the tools your server provides
- Any required authentication (headers/OAuth) is documented
- The transport is set to
sse
orstreamable-http
(notstdio
) - Your server actually works with ToolHive's proxy command
- Check existing entries in the
registry/
folder for examples - Open an issue if you have questions
- Join our community discussions
If you need to work with the registry programmatically:
# Import existing registry
task import
# Validate all entries
task validate
# Build the registry.json
task build:registry
# See all available commands
task
Apache License 2.0