MCP Tools Ecosystem: 58+ Integrations
Since: v7.0.0 | Status: Production Ready | MCP Version: 2024-11-05
Overview
NeuroLink's Model Context Protocol (MCP) integration provides a universal plugin system that transforms the SDK from a simple AI interface into a complete AI development platform. With 6 built-in core tools and access to 58+ community MCP servers, you can extend AI capabilities to interact with filesystems, databases, APIs, cloud services, and custom enterprise systems.
What is MCP?
The Model Context Protocol is an open standard (like USB-C for AI) that enables AI models to securely interact with external tools and data sources through a unified interface. Think of it as:
- For Developers: A standardized way to connect AI to any external system
- For AI Models: A tool registry with discoverable, executable functions
- For Enterprises: A controlled, auditable way to extend AI capabilities
Why MCP Matters
| Traditional Approach | MCP Approach | Benefit |
|---|---|---|
| Custom tool integrations per provider | One MCP tool works everywhere | 10x faster integration |
| Manual tool discovery and configuration | Automatic tool registry | Zero-config tool usage |
| Provider-specific tool formats | Universal JSON-RPC protocol | Provider portability |
| Limited to SDK-defined tools | 58+ community servers + custom | Unlimited extensibility |
| Static tool set | Dynamic runtime addition | Adapt to changing needs |
NeuroLink's Deep MCP Integration
Factory-First Architecture: MCP tools work internally while users see simple factory methods:
// Same simple interface
const result = await neurolink.generate({
input: { text: "List files and create a summary document" },
});
// But internally powered by:
// ✅ Context tracking across tool chains
// ✅ Permission-based security
// ✅ Tool registry and discovery
// ✅ Pipeline execution with error recovery
// ✅ Rich analytics and monitoring
Key Features:
- 99% Lighthouse Compatible: Existing MCP tools work with minimal changes
- Dynamic Server Management: Add/remove MCP servers programmatically
- Rich Context: 15+ fields including session, user, permissions, metadata
- Performance Optimized: 0-11ms tool execution (target: <100ms)
- Enterprise Grade: Comprehensive error handling, audit logging, security
Quick Start
import { NeuroLink } from "@juspay/neurolink";
const neurolink = new NeuroLink();
// Add the GitHub MCP server
await neurolink.addExternalMCPServer("github", {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
env: { GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN! },
});
// The AI can now use GitHub tools automatically
const result = await neurolink.generate({
input: { text: "List open issues in my-org/my-repo" },
});
console.log(result.content);
Built-in Core Tools (6)
NeuroLink ships with 6 essential tools that require zero configuration:
1. getCurrentTime
Purpose: Real-time clock with timezone support
Auto-Available: Yes (always enabled)
Use Cases:
- Timestamp generation
- Timezone conversions
- Scheduling and reminders
- Time-based calculations
Example:
const result = await neurolink.generate({
input: { text: "What time is it in Tokyo?" },
});
// AI uses getCurrentTime tool automatically
Tool Schema:
{
name: "getCurrentTime",
description: "Get current time in specified timezone",
parameters: {
timezone: {
type: "string",
description: "IANA timezone (e.g., 'America/New_York', 'Asia/Tokyo')",
optional: true
}
}
}
2. readFile
Purpose: Read file contents from filesystem
Auto-Available: Yes (with filesystem access)
Use Cases:
- Document analysis
- Code review
- Configuration reading
- Log file processing
Example:
const result = await neurolink.generate({
input: { text: "Summarize the README.md file" },
});
// AI reads and summarizes automatically
Tool Schema:
{
name: "readFile",
description: "Read contents of a file",
parameters: {
path: {
type: "string",
description: "Absolute or relative file path",
required: true
},
encoding: {
type: "string",
description: "File encoding (default: utf-8)",
optional: true
}
}
}
3. writeFile
Purpose: Write content to filesystem
Auto-Available: Yes (with HITL approval recommended)
Use Cases:
- Generated content saving
- Report creation
- Configuration updates
- Code generation output
Example:
const result = await neurolink.generate({
input: { text: "Generate a README and save it to README.md" },
hitl: {
enabled: true,
requireApproval: ["writeFile"],
},
});
// AI generates content and requests approval to save
Tool Schema:
{
name: "writeFile",
description: "Write content to a file",
parameters: {
path: {
type: "string",
description: "File path to write",
required: true
},
content: {
type: "string",
description: "Content to write",
required: true
},
overwrite: {
type: "boolean",
description: "Overwrite if exists (default: false)",
optional: true
}
}
}
4. listDirectory
Purpose: List files and directories
Auto-Available: Yes (with filesystem access)
Use Cases:
- Project structure analysis
- File discovery
- Directory traversal
- Asset inventory
Example:
const result = await neurolink.generate({
input: { text: "What TypeScript files are in the src directory?" },
});
// AI lists directory and filters for .ts files
Tool Schema:
{
name: "listDirectory",
description: "List contents of a directory",
parameters: {
path: {
type: "string",
description: "Directory path",
required: true
},
recursive: {
type: "boolean",
description: "Recursive listing (default: false)",
optional: true
},
filter: {
type: "string",
description: "File extension filter (e.g., '.ts')",
optional: true
}
}
}
5. calculateMath
Purpose: Complex mathematical calculations
Auto-Available: Yes (always enabled)
Use Cases:
- Financial calculations
- Statistical analysis
- Unit conversions
- Scientific computations
Example:
const result = await neurolink.generate({
input: { text: "Calculate compound interest: $10,000 at 5% for 10 years" },
});
// AI uses calculateMath for precise calculation
Tool Schema:
{
name: "calculateMath",
description: "Evaluate mathematical expressions",
parameters: {
expression: {
type: "string",
description: "Mathematical expression to evaluate",
required: true
},
precision: {
type: "number",
description: "Decimal precision (default: 2)",
optional: true
}
}
}
6. websearchGrounding
Purpose: Web search with result grounding
Auto-Available: Only with Google Vertex AI provider
Use Cases:
- Real-time information lookup
- Fact verification
- Current events
- Research augmentation
Example:
const result = await neurolink.generate({
input: { text: "What are the latest developments in quantum computing?" },
provider: "google-vertex", // Required for web search
});
// AI searches web and grounds response in search results
Tool Schema:
{
name: "websearchGrounding",
description: "Search the web and ground responses in results",
parameters: {
query: {
type: "string",
description: "Search query",
required: true
},
maxResults: {
type: "number",
description: "Maximum results to return (default: 5)",
optional: true
}
}
}
Note: This tool is provider-specific (Google Vertex AI only) and leverages Google's grounding capabilities.
External MCP Servers (58+)
NeuroLink integrates with the growing MCP ecosystem of 58+ external servers across 6 major categories.
Quick Integration Example
import { NeuroLink } from "@juspay/neurolink";
const neurolink = new NeuroLink();
// Add external MCP servers dynamically
await neurolink.addExternalMCPServer("github", {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
env: {
GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN,
},
});
await neurolink.addExternalMCPServer("postgres", {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-postgres"],
env: {
POSTGRES_CONNECTION_STRING: process.env.DATABASE_URL,
},
});
// Now AI can use GitHub and PostgreSQL tools
const result = await neurolink.generate({
input: {
text: "Query the users table and create a GitHub issue summarizing active users",
},
});
Productivity Tools (8 Servers)
Enterprise collaboration and workflow automation
GitHub - Complete Repository Management
Install: npx @modelcontextprotocol/server-github
Tools (15):
create_issue- Create GitHub issuescreate_pull_request- Create PRs with difflist_repos- List repositoriessearch_code- Search code across reposget_file_contents- Read file from repocreate_branch- Create new branchlist_commits- View commit historyget_issue- Get issue detailsupdate_issue- Update issue statuscomment_on_issue- Add commentslist_pull_requests- List PRsmerge_pull_request- Merge PRcreate_repository- Create new repofork_repository- Fork repostar_repository- Star repo
Use Cases:
- Automated code reviews
- Issue management from AI chat
- Repository analysis
- CI/CD integration
- Team collaboration
Example:
await neurolink.addExternalMCPServer("github", {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
env: {
GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN,
},
});
const result = await neurolink.generate({
input: {
text: "Create an issue in my repo 'neurolink-examples' titled 'Add HITL example'",
},
});
// AI creates issue automatically
Google Drive - Document Management
Install: npx @modelcontextprotocol/server-google-drive
Tools (12):
list_files- List files and folderssearch_files- Search by name/contentread_file- Read document contentscreate_file- Create new fileupdate_file- Update existing filedelete_file- Delete fileshare_file- Manage sharingcreate_folder- Create foldermove_file- Move file to foldercopy_file- Duplicate fileexport_file- Export to different formatget_permissions- View file permissions
Use Cases:
- Document processing automation
- Report generation
- Team collaboration
- Content migration
Slack - Team Communication
Install: npx @modelcontextprotocol/server-slack
Tools (10):
send_message- Send message to channelcreate_channel- Create new channellist_channels- List workspace channelssearch_messages- Search message historyget_channel_history- Get recent messagesupload_file- Upload file to channeladd_reaction- Add emoji reactionset_status- Update user statuslist_users- List workspace membersget_user_info- Get user details
Use Cases:
- AI notifications
- Team updates
- Automated reporting
- Incident management
Google Calendar - Schedule Management
Install: npm -g @modelcontextprotocol/server-google-calendar
Tools (8):
list_events- List calendar eventscreate_event- Create new eventupdate_event- Update event detailsdelete_event- Delete eventsearch_events- Search by criteriaget_availability- Check free/busyadd_attendees- Invite peoplesend_invites- Send calendar invites
Use Cases:
- Meeting scheduling
- Availability checking
- Event reminders
- Calendar analysis
Notion - Knowledge Management
Install: npm -g @modelcontextprotocol/server-notion
Tools (9):
create_page- Create new pageupdate_page- Update page contentsearch_pages- Search workspaceget_page- Get page detailscreate_database- Create databasequery_database- Query database rowscreate_row- Add database rowupdate_row- Update database rowdelete_row- Delete database row
Jira - Issue Tracking
Install: npm -g @modelcontextprotocol/server-jira
Tools (11):
create_issue- Create Jira issueupdate_issue- Update issuesearch_issues- JQL searchget_issue- Get issue detailsadd_comment- Comment on issuetransition_issue- Change statusassign_issue- Assign to usercreate_sprint- Create sprintlist_projects- List projectsget_project- Get project detailscreate_board- Create board
Linear - Project Management
Install: npm -g @modelcontextprotocol/server-linear
Tools (10):
create_issue- Create issueupdate_issue- Update issuesearch_issues- Search issuescreate_project- Create projectlist_projects- List projectscreate_milestone- Create milestoneassign_issue- Assign issueadd_label- Add labelcreate_comment- Add commentget_team- Get team info
Trello - Board Management
Install: npm -g @modelcontextprotocol/server-trello
Tools (12):
create_card- Create cardupdate_card- Update cardmove_card- Move to listcreate_board- Create boardcreate_list- Create listadd_member- Add member to cardadd_label- Add labeladd_comment- Add commentcreate_checklist- Add checklistattach_file- Attach filearchive_card- Archive cardget_board- Get board details
Database Tools (5 Servers)
Direct database access for AI-powered data operations
PostgreSQL - Relational Database
Install: npx @modelcontextprotocol/server-postgres
Tools (8):
query- Execute SELECT queriesinsert- Insert rowsupdate- Update rowsdelete- Delete rowslist_tables- List all tablesdescribe_table- Get table schemacreate_table- Create new tableexecute- Execute arbitrary SQL
Configuration:
await neurolink.addExternalMCPServer("postgres", {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-postgres"],
env: {
POSTGRES_CONNECTION_STRING: "postgresql://user:pass@localhost:5432/mydb",
},
});
Use Cases:
- Natural language database queries
- Data analysis and reporting
- Database management
- Schema exploration
SQLite - Embedded Database
Install: npx @modelcontextprotocol/server-sqlite
Tools (7):
query- Execute queriesexecute- Run SQL statementslist_tables- List tablesget_schema- Get database schemainsert- Insert dataupdate- Update datadelete- Delete data
MongoDB - Document Database
Install: npm -g @modelcontextprotocol/server-mongodb
Tools (9):
find- Find documentsinsert- Insert documentsupdate- Update documentsdelete- Delete documentsaggregate- Run aggregation pipelinecreate_collection- Create collectionlist_collections- List collectionscreate_index- Create indexdrop_collection- Drop collection
Redis - Key-Value Store
Install: npm -g @modelcontextprotocol/server-redis
Tools (10):
get- Get value by keyset- Set key-value pairdel- Delete keykeys- List keys by patternincr- Increment counterdecr- Decrement counterlpush- Push to listrpush- Push to listlrange- Get list rangehgetall- Get hash
MySQL/MariaDB - Relational Database
Install: npx @modelcontextprotocol/server-mysql
Tools (8):
query- Execute queriesinsert- Insert rowsupdate- Update rowsdelete- Delete rowsshow_tables- List tablesdescribe- Get table structureexecute- Run SQLtransaction- Execute transaction
Development Tools (15 Servers)
Version control, containers, cloud infrastructure
Git - Local Repository Operations
Install: npx @modelcontextprotocol/server-git
Tools (12):
status- Get repo statusdiff- Show difflog- View commit historycommit- Create commitpush- Push to remotepull- Pull from remotebranch- Manage branchescheckout- Switch branchesmerge- Merge branchesstash- Stash changestag- Manage tagsclone- Clone repository
Docker - Container Management
Install: npm -g @modelcontextprotocol/server-docker
Tools (14):
ps- List containersrun- Run containerstop- Stop containerstart- Start containerrestart- Restart containerlogs- View logsexec- Execute commandbuild- Build imagepull- Pull imagepush- Push imageimages- List imagesrm- Remove containerrmi- Remove imageinspect- Inspect container
Kubernetes - Cluster Management
Install: npm -g @modelcontextprotocol/server-kubernetes
Tools (15):
get_pods- List podsdescribe_pod- Pod detailslogs- Get pod logsexec- Execute in podcreate- Create resourceapply- Apply manifestdelete- Delete resourcescale- Scale deploymentrollout- Manage rolloutget_services- List servicesget_deployments- List deploymentsget_nodes- List nodesport_forward- Port forwardget_configmaps- List configmapsget_secrets- List secrets
GitLab - Repository Platform
Install: npm -g @modelcontextprotocol/server-gitlab
Tools (13):
create_issue- Create issuecreate_merge_request- Create MRlist_projects- List projectsget_project- Get projectlist_pipelines- List CI/CDget_pipeline- Get pipelinecreate_branch- Create branchlist_commits- List commitsget_file- Get filecreate_file- Create fileupdate_file- Update filedelete_file- Delete filesearch_code- Search code
NPM - Package Manager
Install: npx @modelcontextprotocol/server-npm
Tools (6):
search- Search packagesinfo- Get package infoinstall- Install packageoutdated- Check outdatedupdate- Update packageslist- List installed
Terraform - Infrastructure as Code
Install: npm -g @modelcontextprotocol/server-terraform
Tools (8):
plan- Generate planapply- Apply changesdestroy- Destroy resourcesshow- Show stateoutput- Get outputsvalidate- Validate configfmt- Format filesworkspace- Manage workspaces
AWS - Amazon Web Services
Install: npm -g @modelcontextprotocol/server-aws
Tools (20+):
- EC2:
list_instances,start_instance,stop_instance - S3:
list_buckets,get_object,put_object - Lambda:
invoke_function,list_functions - RDS:
list_databases,create_snapshot - CloudWatch:
get_metrics,put_metric - And many more...
GCP - Google Cloud Platform
Install: npm -g @modelcontextprotocol/server-gcp
Tools (18+):
- Compute:
list_instances,create_instance - Storage:
list_buckets,upload_object - BigQuery:
query,list_datasets - Pub/Sub:
publish,create_topic - Functions:
deploy,invoke
Azure - Microsoft Cloud
Install: npm -g @modelcontextprotocol/server-azure
Tools (15+):
- VMs:
list_vms,start_vm,stop_vm - Blob Storage:
list_containers,upload_blob - Functions:
list_functions,invoke - SQL:
list_databases,query - Cosmos DB:
query,insert
Web & APIs (10 Servers)
Web scraping, search, and HTTP operations
Puppeteer - Browser Automation
Install: npx @modelcontextprotocol/server-puppeteer
Tools (11):
navigate- Navigate to URLscreenshot- Take screenshotclick- Click elementtype- Type textwait- Wait for elementextract- Extract contentpdf- Generate PDFcookies- Manage cookiesevaluate- Run JavaScriptscroll- Scroll pageselect- Select dropdown
Use Cases:
- Web scraping
- Automated testing
- Screenshot generation
- Form filling
Brave Search - Web Search
Install: npm -g @modelcontextprotocol/server-brave-search
Tools (3):
search- Web searchnews_search- News searchimage_search- Image search
Google Custom Search
Install: npm -g @modelcontextprotocol/server-google-search
Tools (4):
search- Web searchimage_search- Image searchvideo_search- Video searchnews_search- News search
Exa - Semantic Search
Install: npm -g @modelcontextprotocol/server-exa
Tools (5):
search- AI-powered searchsimilar- Find similar contentcontents- Get page contentshighlights- Extract highlightsfind_company- Company lookup
HTTP Fetch - REST API Client
Install: npx @modelcontextprotocol/server-fetch
Tools (5):
get- HTTP GETpost- HTTP POSTput- HTTP PUTdelete- HTTP DELETEpatch- HTTP PATCH
GraphQL Client
Install: npm -g @modelcontextprotocol/server-graphql
Tools (3):
query- Execute querymutation- Execute mutationintrospect- Get schema
Weather API
Install: npm -g @modelcontextprotocol/server-weather
Tools (4):
current- Current weatherforecast- Weather forecasthistorical- Historical dataalerts- Weather alerts
RSS Feed Reader
Install: npm -g @modelcontextprotocol/server-rss
Tools (4):
list_feeds- List subscribed feedsfetch_feed- Fetch feed itemssearch- Search across feedsadd_feed- Subscribe to feed
Search & Knowledge (6 Servers)
Wikipedia - Encyclopedia
Install: npm -g @modelcontextprotocol/server-wikipedia
Tools (5):
search- Search articlesget_article- Get full articlesummary- Get summaryrandom- Random articlenearby- Nearby locations
Wolfram Alpha - Computational Knowledge
Install: npm -g @modelcontextprotocol/server-wolfram
Tools (4):
query- Computational querysimple- Simple answerfull- Full resultsimage- Result as image
arXiv - Research Papers
Install: npm -g @modelcontextprotocol/server-arxiv
Tools (4):
search- Search papersget_paper- Get paper detailsdownload- Download PDFrecent- Recent papers
System & Utilities (7 Servers)
Shell - Command Execution
Install: npx @modelcontextprotocol/server-shell
Tools (3):
exec- Execute commandexec_stream- Execute with streamingwhich- Find executable
Security Note: Use with HITL approval for safety
Time Utilities
Install: npm -g @modelcontextprotocol/server-time
Tools (6):
current_time- Current timeconvert_timezone- Convert timezonesformat- Format timestampparse- Parse date stringdiff- Calculate differenceadd- Add duration
Memory - Persistent Storage
Install: npx @modelcontextprotocol/server-memory
Tools (4):
store- Store valueretrieve- Retrieve valuedelete- Delete valuelist- List keys
Calculator - Math Operations
Install: npm -g @modelcontextprotocol/server-calculator
Tools (5):
calculate- Evaluate expressionconvert_units- Unit conversionstatistics- Statistical functionsfinancial- Financial calculationsscientific- Scientific functions
Encryption - Crypto Operations
Install: npm -g @modelcontextprotocol/server-encryption
Tools (6):
encrypt- Encrypt datadecrypt- Decrypt datahash- Hash datagenerate_key- Generate keysign- Digital signatureverify- Verify signature
QR Code Generator
Install: npm -g @modelcontextprotocol/server-qr-code
Tools (3):
generate- Generate QR coderead- Read QR codeencode_url- Encode URL
Image Processing
Install: npm -g @modelcontextprotocol/server-image
Tools (8):
resize- Resize imageconvert- Convert formatcrop- Crop imagerotate- Rotate imagecompress- Compress imagewatermark- Add watermarkthumbnail- Generate thumbnailmetadata- Extract metadata
Adding MCP Servers
Dynamic Addition (SDK)
Add MCP servers programmatically at runtime:
import { NeuroLink } from "@juspay/neurolink";
const neurolink = new NeuroLink();
// Add official MCP server
await neurolink.addExternalMCPServer("github", {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
env: {
GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN,
},
});
// Add custom MCP server
await neurolink.addExternalMCPServer("custom-analytics", {
command: "node",
args: ["./analytics-mcp-server.js"],
env: {
DATABASE_URL: process.env.ANALYTICS_DB,
API_KEY: process.env.ANALYTICS_KEY,
},
cwd: "/path/to/server",
});
// Add remote MCP server (SSE transport)
await neurolink.addExternalMCPServer("remote-tools", {
command: "http://mcp.company.com/tools",
transport: "sse",
url: "http://mcp.company.com/tools/mcp",
env: {
AUTH_TOKEN: process.env.MCP_AUTH_TOKEN,
},
});
// Verify servers registered
const status = await neurolink.getMCPStatus();
console.log(`Total servers: ${status.totalServers}`);
console.log(`Available tools: ${status.totalTools}`);
Configuration File
Static configuration in .mcp-config.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/"],
"transport": "stdio"
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"transport": "stdio",
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"transport": "stdio",
"env": {
"POSTGRES_CONNECTION_STRING": "${DATABASE_URL}"
}
}
}
}
Environment Variables
Configure via environment variables:
# Server URLs
export MCP_GITHUB_SERVER="npx @modelcontextprotocol/server-github"
export MCP_POSTGRES_SERVER="npx @modelcontextprotocol/server-postgres"
# Authentication
export GITHUB_TOKEN="ghp_your_token"
export DATABASE_URL="postgresql://user:pass@localhost:5432/db"
export SLACK_BOT_TOKEN="xoxb-your-token"
# Server-specific configuration
export MCP_FILESYSTEM_ROOT="/allowed/directory"
export MCP_PUPPETEER_HEADLESS="true"
Tool Discovery
CLI Discovery
npx @juspay/neurolink mcp discover
📋 Available MCP Servers (8):
╔═══════════════╦═════════════╦══════════════╗
║ Server ║ Status ║ Tools ║
╠═══════════════╬═════════════╬══════════════╣
║ filesystem ║ ✅ Active ║ 9 tools ║
║ github ║ ✅ Active ║ 15 tools ║
║ postgres ║ ✅ Active ║ 8 tools ║
║ slack ║ ✅ Active ║ 10 tools ║
║ google-drive ║ ✅ Active ║ 12 tools ║
║ puppeteer ║ ✅ Active ║ 11 tools ║
║ docker ║ ❌ Inactive ║ 0 tools ║
║ custom ║ ✅ Active ║ 5 tools ║
╚═══════════════╩═════════════╩══════════════╝
Total: 70 tools available
💡 Use 'neurolink mcp test <server>' to test connectivity
SDK Discovery
const neurolink = new NeuroLink();
// Discover all tools
const tools = await neurolink.discoverTools();
console.log(`Total tools: ${tools.length}`);
// Group by server
const byServer = tools.reduce((acc, tool) => {
if (!acc[tool.server]) acc[tool.server] = [];
acc[tool.server].push(tool.name);
return acc;
}, {});
console.log("Tools by server:", byServer);
// Filter specific capabilities
const fileTools = tools.filter(
(t) =>
t.name.includes("file") ||
t.name.includes("read") ||
t.name.includes("write"),
);
console.log(
"File-related tools:",
fileTools.map((t) => t.name),
);
Enterprise MCP Patterns
Custom MCP Server Development
Create your own MCP server for enterprise integration:
// custom-crm-server.ts
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server(
{
name: "custom-crm",
version: "1.0.0",
},
{
capabilities: {
tools: {},
},
},
);
// Register tools
server.setRequestHandler("tools/list", async () => {
return {
tools: [
{
name: "get_customer",
description: "Get customer details from CRM",
inputSchema: {
type: "object",
properties: {
customerId: {
type: "string",
description: "Customer ID",
},
},
required: ["customerId"],
},
},
{
name: "create_lead",
description: "Create new lead in CRM",
inputSchema: {
type: "object",
properties: {
name: { type: "string" },
email: { type: "string" },
company: { type: "string" },
},
required: ["name", "email"],
},
},
],
};
});
// Handle tool execution
server.setRequestHandler("tools/call", async (request) => {
const { name, arguments: args } = request.params;
switch (name) {
case "get_customer":
const customer = await fetchCustomerFromCRM(args.customerId);
return {
content: [
{
type: "text",
text: JSON.stringify(customer, null, 2),
},
],
};
case "create_lead":
const lead = await createLeadInCRM(args);
return {
content: [
{
type: "text",
text: `Lead created: ${lead.id}`,
},
],
};
default:
throw new Error(`Unknown tool: ${name}`);
}
});
// Start server
const transport = new StdioServerTransport();
await server.connect(transport);
Using custom server:
await neurolink.addExternalMCPServer("crm", {
command: "node",
args: ["./custom-crm-server.js"],
env: {
CRM_API_KEY: process.env.CRM_API_KEY,
CRM_ENDPOINT: process.env.CRM_ENDPOINT,
},
});
Security Considerations
1. Tool Sandboxing
// Restrict filesystem access
await neurolink.addExternalMCPServer("filesystem", {
command: "npx",
args: [
"-y",
"@modelcontextprotocol/server-filesystem",
"/allowed/directory/only", // Restrict to specific directory
],
});
// Use HITL for dangerous operations
const neurolink = new NeuroLink({
hitl: {
enabled: true,
requireApproval: ["writeFile", "deleteFile", "executeCode", "shell_exec"],
},
});
2. Permission System
// Define permissions per tool
const neurolink = new NeuroLink({
tools: {
permissions: {
readFile: ["admin", "developer", "viewer"],
writeFile: ["admin", "developer"],
deleteFile: ["admin"],
executeCode: ["admin"],
},
},
});
// Enforce in context
const result = await neurolink.generate({
input: { text: "Delete old log files" },
context: {
userId: "user123",
role: "viewer", // Will fail - no delete permission
},
});
3. Audit Logging
const neurolink = new NeuroLink({
audit: {
enabled: true,
logAllTools: true,
storage: "database",
database: {
url: process.env.AUDIT_DB_URL,
},
},
});
// Audit log entry format
{
timestamp: "2025-01-01T14:30:00Z",
userId: "user123",
tool: "writeFile",
args: { path: "/data/report.pdf", size: 1024 },
approved: true,
approver: "[email protected]",
result: { success: true }
}
Performance Optimization
1. Connection Pooling
// Reuse database connections
await neurolink.addExternalMCPServer("postgres", {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-postgres"],
env: {
POSTGRES_CONNECTION_STRING: process.env.DATABASE_URL,
POSTGRES_POOL_SIZE: "20", // Connection pool
POSTGRES_POOL_TIMEOUT: "30000",
},
});
2. Result Caching
const neurolink = new NeuroLink({
tools: {
cache: {
enabled: true,
ttl: 300, // 5 minutes
maxSize: 1000, // Max cached results
},
},
});
// Tools with read-only operations cache results
const result1 = await neurolink.generate({
input: { text: "Get customer 123 details" },
}); // Cache miss - fetches from CRM
const result2 = await neurolink.generate({
input: { text: "Get customer 123 details" },
}); // Cache hit - instant response
3. Timeout Handling
await neurolink.addExternalMCPServer("slow-api", {
command: "npx",
args: ["-y", "slow-mcp-server"],
timeout: 30000, // 30 second timeout
retry: {
enabled: true,
maxAttempts: 3,
backoff: "exponential",
},
});
See Also
- MCP Integration Guide - Deep dive into MCP architecture
- MCP Server Catalog - Complete MCP server directory
- Custom Tools - Building custom MCP servers
- Enterprise HITL - HITL for tool approval workflows
- Interactive CLI - Using MCP tools in CLI loop mode
- MCP Foundation - MCP architecture documentation