A collection of reference implementations and community-contributed servers for the Model Context Protocol (MCP). This repository showcases the versatility and extensibility of MCP, demonstrating how it can be used to give Large Language Models (LLMs) secure, controlled access to tools and data sources.
Each MCP server is implemented with either the Typescript MCP SDK or Python MCP SDK.
- Filesystem - Secure file operations with configurable access controls
- GitHub - Repository management, file operations, and GitHub API integration
- GitLab - GitLab API, enabling project management
- Git - Tools to read, search, and manipulate Git repositories
- Google Drive - File access and search capabilities for Google Drive
- PostgreSQL - Read-only database access with schema inspection
- Sqlite - Database interaction and business intelligence capabilities
- Slack - Channel management and messaging capabilities
- Sentry - Retrieving and analyzing issues from Sentry.io
- Memory - Knowledge graph-based persistent memory system
- Puppeteer - Browser automation and web scraping
- Brave Search - Web and local search using Brave's Search API
- Google Maps - Location services, directions, and place details
- Fetch - Web content fetching and conversion for efficient LLM usage
- Cloudflare - Deploy, configure & interrogate your resources on the Cloudflare developer platform (e.g. Workers/KV/R2/D1)
- Raygun - Interact with your crash reporting and real using monitoring data on your Raygun account
Typescript-based servers in this repository can be used directly with npx
.
For example, this will start the Memory server:
npx -y @modelcontextprotocol/server-memory
Python-based servers in this repository can be used directly with uvx
or pip
. uvx
is recommended for ease of use and setup.
For example, this will start the Git server:
# With uvx
uvx mcp-server-git
# With pip
pip install mcp-server-git
python -m mcp_server_git
Follow these instructions to install uv
/ uvx
and these to install pip
.
However, running a server on its own isn't very useful, and should instead be configured into an MCP client. For example, here's the Claude Desktop configuration to use the above server:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
Additional examples of using the Claude Desktop as an MCP client might look like:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
},
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}
Interested in creating your own MCP server? Visit the official documentation at modelcontextprotocol.io for comprehensive guides, best practices, and technical details on implementing MCP servers.
See CONTRIBUTING.md for information about contributing to this repository.
See SECURITY.md for reporting security vulnerabilities.
This project is licensed under the MIT License - see the LICENSE file for details.
If you find MCP servers useful, please consider starring the repository and contributing new servers or improvements!
Managed by Anthropic, but built together with the community. The Model Context Protocol is open source and we encourage everyone to contribute their own servers and improvements!