Skip to main content

MCP External Servers Catalog

Comprehensive directory of 58+ Model Context Protocol servers for extending AI capabilities


Overview​

The Model Context Protocol (MCP) enables AI models to interact with external tools and data sources through standardized servers. This catalog lists 58+ community and official MCP servers you can integrate with NeuroLink to extend your AI applications.

What is MCP?​

MCP is an open protocol that standardizes how AI applications connect to external data sources and tools. Think of it as USB-C for AI - one universal standard for connecting AI models to any tool or data source.

Transport Types​

MCP servers communicate using different transport protocols:

TransportUse CaseDescription
stdioLocal serversDefault for CLI-based MCP servers
SSEWeb serversServer-Sent Events for HTTP streaming
WebSocketReal-timeBidirectional real-time communication
HTTPRemote APIsHTTP/Streamable HTTP for remote MCP servers with authentication

Categories​

  • 🗄️ Data & Storage (12 servers): Databases, file systems, cloud storage
  • 🌐 Web & APIs (10 servers): Web scraping, HTTP clients, REST APIs
  • 💻 Development Tools (15 servers): Git, Docker, package managers
  • 📊 Productivity (8 servers): Google Drive, Notion, Slack, Email
  • 🔍 Search & Knowledge (6 servers): Web search, knowledge bases
  • 🔧 System & Utilities (7 servers): System operations, monitoring

Quick Start​

Installing an MCP Server​

import { NeuroLink } from "@juspay/neurolink";

const ai = new NeuroLink({
providers: [
{
name: "anthropic",
config: { apiKey: process.env.ANTHROPIC_API_KEY },
},
],
mcpServers: [
{
name: "filesystem",
command: "npx",
args: [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/Documents",
],
description: "Access local filesystem",
},
{
name: "github",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
env: {
GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN,
},
description: "Interact with GitHub repositories",
},
],
});

// Use MCP tools
const result = await ai.generate({
input: { text: "List files in my Documents folder" },
provider: "anthropic",
tools: "auto", // Automatically uses MCP tools
});

Official MCP Servers​

@modelcontextprotocol/server-filesystem​

Access local filesystem with read/write capabilities

# Install
npx -y @modelcontextprotocol/server-filesystem [allowed-directory]

Features:

  • Read files and directories
  • Write and create files
  • Search file contents
  • Move and delete files
  • Get file metadata

Use Cases:

  • Document processing
  • Code analysis
  • Log file analysis
  • Automated file management

Configuration:

mcpServers: [
{
name: "filesystem",
command: "npx",
args: [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/Documents",
],
description: "Access Documents folder",
},
];

Example Usage:

User: "Summarize all markdown files in my Documents"
AI: *uses filesystem server to read .md files, then summarizes*

@modelcontextprotocol/server-github​

Complete GitHub integration

# Install
npm install -g @modelcontextprotocol/server-github

# Set token
export GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token

Features:

  • Search repositories
  • Create/update issues and PRs
  • Read file contents
  • Manage branches
  • Search code
  • List commits

Use Cases:

  • Automated code reviews
  • Issue management
  • Repository analysis
  • CI/CD integration

Configuration:

mcpServers: [
{
name: "github",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
env: {
GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN,
},
},
];

Example Usage:

User: "Create an issue in my repo about the authentication bug"
AI: *creates GitHub issue with description*

@modelcontextprotocol/server-postgres​

PostgreSQL database access

# Install
npm install -g @modelcontextprotocol/server-postgres

Features:

  • Execute SQL queries
  • List schemas and tables
  • Analyze query performance
  • Database introspection

Configuration:

mcpServers: [
{
name: "postgres",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-postgres"],
env: {
POSTGRES_CONNECTION_STRING: "postgresql://user:pass@localhost:5432/mydb",
},
},
];

Example Usage:

User: "How many users signed up this month?"
AI: *queries database and provides count*

@modelcontextprotocol/server-google-drive​

Google Drive integration

npm install -g @modelcontextprotocol/server-google-drive

Features:

  • Search files and folders
  • Read document contents
  • Upload files
  • Share files
  • Manage permissions

Configuration:

mcpServers: [
{
name: "gdrive",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-google-drive"],
env: {
GOOGLE_APPLICATION_CREDENTIALS: "/path/to/credentials.json",
},
},
];

@modelcontextprotocol/server-slack​

Slack workspace integration

Features:

  • Send messages
  • Read channel history
  • Search messages
  • Manage channels
  • User information

Configuration:

mcpServers: [
{
name: "slack",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-slack"],
env: {
SLACK_BOT_TOKEN: process.env.SLACK_BOT_TOKEN,
SLACK_TEAM_ID: process.env.SLACK_TEAM_ID,
},
},
];

Data & Storage Servers (12)​

Databases​

ServerDescriptionInstallAuth
postgresPostgreSQL databasenpx @modelcontextprotocol/server-postgresConnection string
sqliteSQLite databasenpx @modelcontextprotocol/server-sqliteFile path
mysqlMySQL/MariaDBnpx @modelcontextprotocol/server-mysqlConnection string
mongodbMongoDB databasenpm -g @modelcontextprotocol/server-mongodbConnection string
redisRedis key-value storenpm -g @modelcontextprotocol/server-redisConnection string

File Systems & Cloud Storage​

ServerDescriptionInstallAuth
filesystemLocal filesystemnpx @modelcontextprotocol/server-filesystemDirectory path
google-driveGoogle Drivenpx @modelcontextprotocol/server-google-driveOAuth credentials
aws-s3Amazon S3 storagenpm -g @modelcontextprotocol/server-aws-s3AWS credentials
azure-blobAzure Blob Storagenpm -g @modelcontextprotocol/server-azure-blobAzure credentials
dropboxDropbox storagenpm -g @modelcontextprotocol/server-dropboxOAuth token

Web & APIs Servers (10)​

ServerDescriptionInstallKey Features
fetchHTTP clientnpx @modelcontextprotocol/server-fetchGET/POST requests, headers
puppeteerBrowser automationnpx @modelcontextprotocol/server-puppeteerWeb scraping, screenshots
brave-searchBrave Search APInpm -g @modelcontextprotocol/server-brave-searchWeb search, news
google-searchGoogle Custom Searchnpm -g @modelcontextprotocol/server-google-searchWeb search, images
exaExa search enginenpm -g @modelcontextprotocol/server-exaSemantic web search
weatherWeather datanpm -g @modelcontextprotocol/server-weatherCurrent & forecast
newsNews aggregatornpm -g @modelcontextprotocol/server-newsLatest news articles
rssRSS feed readernpm -g @modelcontextprotocol/server-rssFeed parsing
http-apiGeneric HTTP APInpm -g @modelcontextprotocol/server-http-apiREST API client
graphqlGraphQL clientnpm -g @modelcontextprotocol/server-graphqlGraphQL queries

Development Tools Servers (15)​

Version Control​

ServerDescriptionInstallFeatures
githubGitHub APInpx @modelcontextprotocol/server-githubRepos, issues, PRs
gitlabGitLab APInpm -g @modelcontextprotocol/server-gitlabProjects, merge requests
gitLocal Git operationsnpx @modelcontextprotocol/server-gitCommit, branch, diff

CI/CD & DevOps​

ServerDescriptionInstallFeatures
dockerDocker managementnpm -g @modelcontextprotocol/server-dockerContainers, images
kubernetesK8s cluster mgmtnpm -g @modelcontextprotocol/server-kubernetesPods, deployments
terraformInfrastructure as codenpm -g @modelcontextprotocol/server-terraformPlan, apply, state
awsAWS operationsnpm -g @modelcontextprotocol/server-awsEC2, S3, Lambda
gcpGoogle Cloudnpm -g @modelcontextprotocol/server-gcpCompute, storage
azureMicrosoft Azurenpm -g @modelcontextprotocol/server-azureVMs, storage

Package Managers​

ServerDescriptionInstallFeatures
npmNPM packagesnpx @modelcontextprotocol/server-npmSearch, install, info
pipPython packagesnpm -g @modelcontextprotocol/server-pipSearch, install
cargoRust packagesnpm -g @modelcontextprotocol/server-cargoCrates.io search

Productivity Servers (8)​

ServerDescriptionInstallKey Features
google-driveGoogle Drivenpx @modelcontextprotocol/server-google-driveFiles, docs, sheets
google-calendarGoogle Calendarnpm -g @modelcontextprotocol/server-google-calendarEvents, scheduling
google-gmailGmailnpm -g @modelcontextprotocol/server-google-gmailSend, read emails
slackSlack workspacenpx @modelcontextprotocol/server-slackMessages, channels
notionNotion workspacenpm -g @modelcontextprotocol/server-notionPages, databases
trelloTrello boardsnpm -g @modelcontextprotocol/server-trelloCards, lists
jiraJira issuesnpm -g @modelcontextprotocol/server-jiraIssues, sprints
linearLinear issuesnpm -g @modelcontextprotocol/server-linearIssues, projects

Search & Knowledge Servers (6)​

ServerDescriptionInstallUse Case
brave-searchWeb searchnpm -g @modelcontextprotocol/server-brave-searchGeneral web search
google-searchGoogle searchnpm -g @modelcontextprotocol/server-google-searchWeb & image search
exaSemantic searchnpm -g @modelcontextprotocol/server-exaAI-powered search
wikipediaWikipedianpm -g @modelcontextprotocol/server-wikipediaEncyclopedia lookup
wolframWolfram Alphanpm -g @modelcontextprotocol/server-wolframComputational knowledge
arxivResearch papersnpm -g @modelcontextprotocol/server-arxivAcademic papers

System & Utilities Servers (7)​

ServerDescriptionInstallFeatures
shellShell commandsnpx @modelcontextprotocol/server-shellExecute commands
timeTime utilitiesnpm -g @modelcontextprotocol/server-timeTimezones, formatting
memoryPersistent memorynpx @modelcontextprotocol/server-memoryStore/retrieve data
calculatorMath operationsnpm -g @modelcontextprotocol/server-calculatorCalculations
encryptionCrypto operationsnpm -g @modelcontextprotocol/server-encryptionEncrypt/decrypt
qr-codeQR code generatornpm -g @modelcontextprotocol/server-qr-codeGenerate QR codes
imageImage processingnpm -g @modelcontextprotocol/server-imageResize, convert

Remote HTTP MCP Servers​

NeuroLink supports connecting to remote MCP servers over HTTP/Streamable HTTP transport with authentication, retry logic, and rate limiting.

Configuring Remote HTTP Servers​

const ai = new NeuroLink({
providers: [
{ name: "anthropic", config: { apiKey: process.env.ANTHROPIC_API_KEY } },
],
mcpServers: [
// Remote API with Bearer token
{
name: "remote-api",
transport: "http",
url: "https://api.example.com/mcp",
headers: {
Authorization: `Bearer ${process.env.API_TOKEN}`,
},
httpOptions: {
connectionTimeout: 30000,
requestTimeout: 60000,
},
retryConfig: {
maxAttempts: 3,
initialDelay: 1000,
maxDelay: 30000,
},
},

// Remote server with API key
{
name: "external-tools",
transport: "http",
url: "https://tools.example.com/mcp",
headers: {
"X-API-Key": process.env.TOOLS_API_KEY,
},
rateLimiting: {
requestsPerMinute: 60,
maxBurst: 10,
},
},

// OAuth 2.1 protected server
{
name: "oauth-protected",
transport: "http",
url: "https://secure.example.com/mcp",
auth: {
type: "oauth2",
oauth: {
clientId: process.env.OAUTH_CLIENT_ID,
clientSecret: process.env.OAUTH_CLIENT_SECRET,
tokenEndpoint: "https://auth.example.com/oauth/token",
scopes: ["mcp:read", "mcp:write"],
usePKCE: true,
},
},
},
],
});

HTTP Transport Configuration Options​

OptionTypeDescription
transport"http"Transport type for remote servers
urlstringURL of the remote MCP endpoint
headersobjectHTTP headers for authentication
httpOptions.connectionTimeoutnumberConnection timeout in ms (default: 30000)
httpOptions.requestTimeoutnumberRequest timeout in ms (default: 60000)
httpOptions.idleTimeoutnumberIdle timeout in ms (default: 120000)
httpOptions.keepAliveTimeoutnumberKeep-alive timeout in ms (default: 30000)
retryConfig.maxAttemptsnumberMax retry attempts (default: 3)
retryConfig.initialDelaynumberInitial retry delay in ms (default: 1000)
retryConfig.maxDelaynumberMax retry delay in ms (default: 30000)
retryConfig.backoffMultipliernumberBackoff multiplier (default: 2)
rateLimiting.requestsPerMinutenumberRate limit per minute
rateLimiting.maxBurstnumberMax burst requests
rateLimiting.useTokenBucketbooleanUse token bucket algorithm

Authentication Types​

Bearer Token:

{
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
}

API Key:

{
headers: {
"X-API-Key": "your-api-key"
}
}

OAuth 2.1 with PKCE:

{
auth: {
type: "oauth2",
oauth: {
clientId: "your-client-id",
clientSecret: "your-client-secret",
tokenEndpoint: "https://auth.example.com/oauth/token",
scopes: ["mcp:read", "mcp:write"],
usePKCE: true
}
}
}

See MCP HTTP Transport Guide for complete documentation.


Advanced Integrations​

Multi-Server Setup​

const ai = new NeuroLink({
providers: [
{ name: "anthropic", config: { apiKey: process.env.ANTHROPIC_API_KEY } },
],
mcpServers: [
// Filesystem access
{
name: "filesystem",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-filesystem", process.cwd()],
},

// GitHub integration
{
name: "github",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
env: { GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN },
},

// PostgreSQL database
{
name: "postgres",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-postgres"],
env: { POSTGRES_CONNECTION_STRING: process.env.DATABASE_URL },
},

// Web search
{
name: "brave-search",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-brave-search"],
env: { BRAVE_API_KEY: process.env.BRAVE_API_KEY },
},

// Slack integration
{
name: "slack",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-slack"],
env: {
SLACK_BOT_TOKEN: process.env.SLACK_BOT_TOKEN,
SLACK_TEAM_ID: process.env.SLACK_TEAM_ID,
},
},
],
});

// AI can now use all these tools automatically
const result = await ai.generate({
input: {
text: `
1. Search for "TypeScript best practices"
2. Create a GitHub issue with the findings
3. Query our users table for signup trends
4. Send summary to #engineering Slack channel
`,
},
provider: "anthropic",
model: "claude-3-5-sonnet-20241022",
tools: "auto",
});

Custom MCP Server​

Create your own MCP server:

// my-custom-server.ts
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server(
{
name: "my-custom-server",
version: "1.0.0",
},
{
capabilities: {
tools: {},
},
},
);

// Define custom tools
server.setRequestHandler("tools/list", async () => ({
tools: [
{
name: "custom_api_call",
description: "Call my custom API",
inputSchema: {
type: "object",
properties: {
endpoint: { type: "string" },
method: { type: "string", enum: ["GET", "POST"] },
},
required: ["endpoint"],
},
},
],
}));

server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "custom_api_call") {
const { endpoint, method = "GET" } = request.params.arguments;

const response = await fetch(`https://myapi.com/${endpoint}`, {
method,
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});

return {
content: [
{
type: "text",
text: JSON.stringify(await response.json(), null, 2),
},
],
};
}

throw new Error("Unknown tool");
});

// Start server
const transport = new StdioServerTransport();
await server.connect(transport);

Use custom server:

mcpServers: [
{
name: "my-custom-server",
command: "node",
args: ["./my-custom-server.js"],
env: {
API_KEY: process.env.MY_API_KEY,
},
},
];

Use Case Examples​

1. Code Review Automation​

const ai = new NeuroLink({
providers: [
{ name: "anthropic", config: { apiKey: process.env.ANTHROPIC_API_KEY } },
],
mcpServers: [
{
name: "github",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
},
{
name: "filesystem",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-filesystem", "./"],
},
],
});

const result = await ai.generate({
input: { text: "Review all open PRs in my repo and suggest improvements" },
tools: "auto",
});

2. Database Analytics​

const ai = new NeuroLink({
providers: [
{ name: "anthropic", config: { apiKey: process.env.ANTHROPIC_API_KEY } },
],
mcpServers: [
{
name: "postgres",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-postgres"],
env: { POSTGRES_CONNECTION_STRING: process.env.DATABASE_URL },
},
],
});

const result = await ai.generate({
input: {
text: "Analyze user signup trends for the past 3 months and identify patterns",
},
tools: "auto",
});

3. Customer Support Automation​

const ai = new NeuroLink({
providers: [
{ name: "anthropic", config: { apiKey: process.env.ANTHROPIC_API_KEY } },
],
mcpServers: [
{
name: "slack",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-slack"],
},
{
name: "jira",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-jira"],
},
{
name: "notion",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-notion"],
},
],
});

const result = await ai.generate({
input: {
text: `
1. Read recent support tickets from Jira
2. Categorize by priority
3. Create summary in Notion
4. Alert #support channel in Slack for P0 issues
`,
},
tools: "auto",
});

Best Practices​

1. ✅ Limit Server Permissions​

// ✅ Good: Restrict filesystem access
mcpServers: [
{
name: "filesystem",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-filesystem", "/safe/directory"],
// Not entire system: '/'
},
];

2. ✅ Use Environment Variables for Secrets​

// ✅ Good: Store secrets in env vars
env: {
GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN; // From .env
// Not hardcoded: 'ghp_abc123...'
}

3. ✅ Test Servers Individually​

// ✅ Test each server works before combining
const testServer = new NeuroLink({
mcpServers: [
{
name: "github", // Test one at a time
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
},
],
});

4. ✅ Monitor MCP Server Usage​

// ✅ Track tool usage via analytics middleware
const neurolink = new NeuroLink({
middleware: {
analytics: {
enabled: true,
},
},
});

const result = await neurolink.generate({
input: { text: "Your prompt" },
tools: "auto",
});

// Analytics data is available in the result metadata
// You can also enable debug logging to see tool execution details:
// DEBUG=neurolink:* npx neurolink generate "Your prompt"

5. ✅ Handle Server Failures Gracefully​

// ✅ Provide fallback when MCP server fails
try {
const result = await ai.generate({
input: { text: "Search GitHub for TypeScript repos" },
tools: "auto",
});
} catch (error) {
if (error.message.includes("MCP server")) {
console.error("MCP server unavailable, using basic search");
// Fallback to non-MCP approach
}
throw error;
}

Troubleshooting​

Server Won't Start​

Problem: MCP server fails to initialize.

Solution:

# Test server manually
npx @modelcontextprotocol/server-github

# Check logs
DEBUG=mcp:* npx @modelcontextprotocol/server-github

# Verify installation
npm list -g | grep modelcontextprotocol

Authentication Errors​

Problem: Server can't authenticate with external service.

Solution:

# Verify environment variables
echo $GITHUB_PERSONAL_ACCESS_TOKEN

# Check token permissions
# - GitHub: repo, read:org scopes required
# - Google: OAuth scopes must include drive.readonly

Tool Not Available​

Problem: AI can't see MCP tools.

Solution:

// Verify server is loaded
console.log(ai.listMCPServers());

// Explicitly enable tools
const result = await ai.generate({
input: { text: "Your prompt" },
tools: "auto", // Must be 'auto' or specific tool list
provider: "anthropic", // MCP requires Claude 3.5+
});


Additional Resources​


Need Help? Join our GitHub Discussions or open an issue.