Module 4: Available MCP Servers
The MCP Server Ecosystem
One of MCP's greatest strengths is its growing ecosystem of pre-built servers. Instead of building integrations from scratch, you can often find a server that does exactly what you need. This module catalogs the most useful servers, explains what each one does, and helps you choose the right ones for your workflow.
Official Anthropic Servers
These servers are maintained by Anthropic and represent the most stable, well-documented options.
Filesystem Server
Package: @modelcontextprotocol/server-filesystem
Purpose: Read and search local files and directories.
Capabilities:
- List directory contents
- Read file contents
- Search files by name patterns
- Get file metadata
Configuration:
{
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/directory1",
"/path/to/directory2"
]
}
}
Use Cases:
- Code review and analysis
- Documentation lookup
- Configuration file management
- Log file analysis
Security Note: The server only accesses directories explicitly listed in args. It cannot escape these boundaries.
GitHub Server
Package: @modelcontextprotocol/server-github
Purpose: Interact with GitHub repositories, issues, and pull requests.
Capabilities:
- List and read repositories
- Create and manage issues
- Review pull requests
- Read file contents from repos
- Search code across repositories
Configuration:
{
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
Getting a Token:
- Go to GitHub Settings → Developer Settings → Personal Access Tokens
- Generate a new token (classic) with
reposcope - Copy the token to your configuration
Use Cases:
- Automated code review
- Issue triage and management
- Repository analysis
- Documentation generation from code
GitLab Server
Package: @modelcontextprotocol/server-gitlab
Purpose: Similar to GitHub server but for GitLab repositories.
Capabilities:
- Repository management
- Merge request operations
- Issue tracking
- CI/CD pipeline access
Configuration:
{
"gitlab": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-gitlab"],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "glpat-xxxxxxxxxxxx",
"GITLAB_API_URL": "https://gitlab.com/api/v4"
}
}
}
PostgreSQL Server
Package: @modelcontextprotocol/server-postgres
Purpose: Query and analyze PostgreSQL databases.
Capabilities:
- Execute SELECT queries
- Describe table schemas
- List tables and views
- Analyze query results
Configuration:
{
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://user:password@host:5432/database"
]
}
}
Security Note: The server is read-only by default. It won't execute INSERT, UPDATE, DELETE, or DDL statements.
Use Cases:
- Data analysis and reporting
- Schema documentation
- Query optimization suggestions
- Data quality checks
SQLite Server
Package: @modelcontextprotocol/server-sqlite
Purpose: Query local SQLite database files.
Capabilities:
- Read-only database queries
- Schema inspection
- Table listing
Configuration:
{
"sqlite": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sqlite",
"/path/to/database.db"
]
}
}
Use Cases:
- Analyzing application databases
- Browser history/bookmark analysis
- Mobile app database inspection
- Local data exploration
Brave Search Server
Package: @modelcontextprotocol/server-brave-search
Purpose: Search the web using Brave Search API.
Capabilities:
- Web search queries
- Local search (businesses, places)
- News search
Configuration:
{
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "BSA_xxxxxxxxxxxx"
}
}
}
Getting an API Key:
- Sign up at brave.com/search/api
- Choose a plan (free tier available)
- Copy your API key
Use Cases:
- Research assistance
- Fact-checking
- Finding documentation
- Competitive analysis
Puppeteer Server
Package: @modelcontextprotocol/server-puppeteer
Purpose: Browser automation and web scraping.
Capabilities:
- Navigate to URLs
- Take screenshots
- Extract page content
- Execute JavaScript in pages
- Fill forms and click buttons
Configuration:
{
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
Use Cases:
- Web scraping for research
- Automated testing
- Screenshot capture
- Form automation
Note: This server launches a real browser. Be cautious about which sites you automate.
Memory Server
Package: @modelcontextprotocol/server-memory
Purpose: Persistent memory storage for notes and context.
Capabilities:
- Store key-value pairs
- Retrieve stored information
- List all stored items
- Delete items
Configuration:
{
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
Use Cases:
- Storing project notes
- Remembering preferences
- Building knowledge bases
- Cross-session context
Fetch Server
Package: @modelcontextprotocol/server-fetch
Purpose: Fetch and read web content.
Capabilities:
- GET requests to URLs
- Extract text content from HTML
- Handle redirects
- Read raw content or parsed text
Configuration:
{
"fetch": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"]
}
}
Use Cases:
- Reading documentation
- Fetching API responses
- Analyzing web pages
- Content summarization
Community Servers
Beyond official servers, the community has created many useful integrations.
Slack Server
Package: @modelcontextprotocol/server-slack
Purpose: Interact with Slack workspaces.
Capabilities:
- Read channel messages
- Post messages
- List channels
- Search messages
Configuration:
{
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-xxxxxxxxxxxx",
"SLACK_TEAM_ID": "T01234567"
}
}
}
Google Drive Server
Package: @modelcontextprotocol/server-gdrive
Purpose: Access files in Google Drive.
Capabilities:
- List files and folders
- Read file contents
- Search by name or content
- Access shared drives
Configuration:
{
"google-drive": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-gdrive"],
"env": {
"GDRIVE_CREDENTIALS_PATH": "/path/to/credentials.json"
}
}
}
Note: Requires Google Cloud project and OAuth setup.
Notion Server
Purpose: Access Notion pages and databases.
Capabilities:
- Read pages
- Query databases
- Search content
Use Cases:
- Knowledge base access
- Project documentation
- Note retrieval
Linear Server
Purpose: Access Linear issue tracking.
Capabilities:
- Read issues
- Create issues
- Update status
- Query projects
Use Cases:
- Issue triage
- Sprint planning
- Status reporting
Choosing the Right Servers
When deciding which servers to set up, consider:
1. Start with your pain points What tasks do you find yourself doing repeatedly that Claude could help with if it had access?
2. Consider security implications Each server is an access point. Only enable what you actually need.
3. Check token/API requirements Some servers need API keys. Make sure you can obtain them before configuring.
4. Test in isolation Add one server at a time. Verify it works before adding more.
Server Capability Matrix
| Server | Resources | Tools | Prompts | Auth Required |
|---|---|---|---|---|
| Filesystem | Yes | Yes | No | No |
| GitHub | Yes | Yes | No | Token |
| PostgreSQL | Yes | Yes | No | Connection string |
| SQLite | Yes | Yes | No | No |
| Brave Search | No | Yes | No | API Key |
| Puppeteer | No | Yes | No | No |
| Memory | Yes | Yes | No | No |
| Fetch | No | Yes | No | No |
| Slack | Yes | Yes | No | Token |
| Google Drive | Yes | Yes | No | OAuth |
Practical Configuration Examples
Developer Setup:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}" }
}
}
}
Researcher Setup:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "~/Research"]
},
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": { "BRAVE_API_KEY": "${BRAVE_API_KEY}" }
},
"fetch": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"]
}
}
}
Data Analyst Setup:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "${DATABASE_URL}"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "~/data", "~/reports"]
}
}
}
Finding More Servers
The MCP ecosystem is growing. To find more servers:
Official Registry: Check the MCP GitHub organization for official and featured servers.
NPM Search:
Search npm for @modelcontextprotocol to find published servers.
Community Resources: Look for awesome-mcp lists and community curations.
Build Your Own: If you can't find what you need, you can build it. We'll cover that in Module 6.
Key Takeaways
-
Rich ecosystem - Dozens of pre-built servers for common integrations
-
Official servers - Filesystem, GitHub, databases, search, and more
-
Community servers - Slack, Notion, Linear, and growing
-
Configuration patterns - Most servers use similar npx-based setup
-
Security first - Only enable servers you need, with minimal permissions
-
Check requirements - Many servers need API keys or tokens
-
Start small - Add servers incrementally, testing each one
Looking Ahead
Now that you know what servers are available, the next module focuses on using MCP specifically with Claude Code. You'll learn project-scoped configurations, development workflows, and how to maximize MCP in your coding workflow.
Next up: Module 5 - Using MCP with Claude Code

