| title | MCP Tools Ecosystem - Built-in Tools + Any MCP Server |
|---|---|
| description | Complete showcase of Model Context Protocol tools - built-in core tools and external MCP server ecosystem |
| keywords | mcp, model context protocol, tools, integrations, ecosystem, servers |
Since: v7.0.0 | Status: Production Ready | MCP Version: 2024-11-05
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 the ability to connect any community MCP server (58+ cataloged in the server directory), you can extend AI capabilities to interact with filesystems, databases, APIs, cloud services, and custom enterprise systems.
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
| 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 | any community MCP server + custom | Unlimited extensibility |
| Static tool set | Dynamic runtime addition | Adapt to changing needs |
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 monitoringKey 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
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);NeuroLink ships with 6 essential tools that require zero configuration:
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 automaticallyTool 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
}
}
}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 automaticallyTool 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
}
}
}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 saveTool 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
}
}
}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 filesTool 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
}
}
}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 calculationTool 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
}
}
}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 resultsTool 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.
NeuroLink connects to the growing MCP ecosystem — any MCP-compliant server works; the server catalog lists 58+ across 6 major categories.
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",
},
});Enterprise collaboration and workflow automation
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 automaticallyInstall: 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
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
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
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
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
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
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
Direct database access for AI-powered data operations
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
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
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
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
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
Version control, containers, cloud infrastructure
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
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
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
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
Install: npx @modelcontextprotocol/server-npm
Tools (6):
search- Search packagesinfo- Get package infoinstall- Install packageoutdated- Check outdatedupdate- Update packageslist- List installed
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
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...
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
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 scraping, search, and HTTP operations
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
Install: npm -g @modelcontextprotocol/server-brave-search
Tools (3):
search- Web searchnews_search- News searchimage_search- Image search
Install: npm -g @modelcontextprotocol/server-google-search
Tools (4):
search- Web searchimage_search- Image searchvideo_search- Video searchnews_search- News search
Install: npm -g @modelcontextprotocol/server-exa
Tools (5):
search- AI-powered searchsimilar- Find similar contentcontents- Get page contentshighlights- Extract highlightsfind_company- Company lookup
Install: npx @modelcontextprotocol/server-fetch
Tools (5):
get- HTTP GETpost- HTTP POSTput- HTTP PUTdelete- HTTP DELETEpatch- HTTP PATCH
Install: npm -g @modelcontextprotocol/server-graphql
Tools (3):
query- Execute querymutation- Execute mutationintrospect- Get schema
Install: npm -g @modelcontextprotocol/server-weather
Tools (4):
current- Current weatherforecast- Weather forecasthistorical- Historical dataalerts- Weather alerts
Install: npm -g @modelcontextprotocol/server-rss
Tools (4):
list_feeds- List subscribed feedsfetch_feed- Fetch feed itemssearch- Search across feedsadd_feed- Subscribe to feed
Install: npm -g @modelcontextprotocol/server-wikipedia
Tools (5):
search- Search articlesget_article- Get full articlesummary- Get summaryrandom- Random articlenearby- Nearby locations
Install: npm -g @modelcontextprotocol/server-wolfram
Tools (4):
query- Computational querysimple- Simple answerfull- Full resultsimage- Result as image
Install: npm -g @modelcontextprotocol/server-arxiv
Tools (4):
search- Search papersget_paper- Get paper detailsdownload- Download PDFrecent- Recent papers
Install: npx @modelcontextprotocol/server-shell
Tools (3):
exec- Execute commandexec_stream- Execute with streamingwhich- Find executable
Security Note: Use with HITL approval for safety
Install: npm -g @modelcontextprotocol/server-time
Tools (6):
current_time- Current timeconvert_timezone- Convert timezonesformat- Format timestampparse- Parse date stringdiff- Calculate differenceadd- Add duration
Install: npx @modelcontextprotocol/server-memory
Tools (4):
store- Store valueretrieve- Retrieve valuedelete- Delete valuelist- List keys
Install: npm -g @modelcontextprotocol/server-calculator
Tools (5):
calculate- Evaluate expressionconvert_units- Unit conversionstatistics- Statistical functionsfinancial- Financial calculationsscientific- Scientific functions
Install: npm -g @modelcontextprotocol/server-encryption
Tools (6):
encrypt- Encrypt datadecrypt- Decrypt datahash- Hash datagenerate_key- Generate keysign- Digital signatureverify- Verify signature
Install: npm -g @modelcontextprotocol/server-qr-code
Tools (3):
generate- Generate QR coderead- Read QR codeencode_url- Encode URL
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
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}`);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}"
}
}
}
}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"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 connectivityconst 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),
);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,
},
});// 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"],
},
});// 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
},
});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: "manager@company.com",
result: { success: true }
}// 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",
},
});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 responseawait neurolink.addExternalMCPServer("slow-api", {
command: "npx",
args: ["-y", "slow-mcp-server"],
timeout: 30000, // 30 second timeout
retry: {
enabled: true,
maxAttempts: 3,
backoff: "exponential",
},
});- 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