Smart MCP Server
reconsumeralization
README
智能 MCP 服务器
一个上下文感知的模型上下文协议 (MCP) 服务器,它能根据用户上下文和需求智能地管理工具的呈现和执行。
🚀 概述
Smart MCP Server 是一个强大的中间件,充当 AI 模型和工具之间上下文感知的桥梁。它分析用户上下文、历史模式和内容,以智能地呈现最相关的工具,从而提高效率并减少认知负荷。此存储库提供核心服务器、上下文感知选择器以及与各种服务的集成,包括 Google 的 Gemini API。
✨ 主要特性
-
上下文感知的工具选择:根据以下因素智能地选择和呈现工具:
- 用户消息内容和上下文
- 历史使用模式
- 工具类别(文件系统、代码编辑、AI 等)
- 必要的工具指定
-
工具服务器架构:管理多个工具服务器实例,具有:
- 服务器生命周期管理
- 工具注册
- 执行代理
- 错误处理
-
Gemini API 集成:与 Google 的 Gemini 模型完全集成:
- 文本生成
- JSON 响应格式化
- 流式传输功能
- 高级模型配置
-
工作流系统:定义、执行和监控复杂的工作流:
- 顺序和并行步骤执行
- 依赖管理
- 变量存储和注入
- 进度监控
- 执行历史
-
文档自动化:用于收集和摄取文档的工具:
- 存储库扫描
- Markdown 解析
- 文档结构分析
- 知识集成
📋 前提条件
- Node.js (v16.0.0 或更高版本)
- npm (v7.0.0 或更高版本)
- 对于 Gemini API:Google AI API 密钥
🔧 安装
-
克隆存储库:
git clone https://github.com/reconsumeralization/smart-mcp-server.git cd smart-mcp-server
-
安装依赖项:
npm install
-
配置环境变量:
cp .env.example .env # 编辑 .env 文件进行配置
🏗️ 项目结构
smart-mcp-server/
├── context-aware-selector.js # 基于上下文的工具选择
├── docs/ # 文档文件
├── examples/ # 示例脚本
├── lib/ # 共享库
├── schema/ # 工具模式定义
├── server.js # 主服务器实现
├── servers/ # 工具服务器实现
├── test/ # 测试文件
├── tool-proxy.js # 工具执行代理
├── tools/ # 工具实现
└── workflow-monitor.js # 工作流监控系统
🚀 高级示例
1. 多工具编排
组合多个工具以完成复杂的任务:
import { ToolOrchestrator } from './lib/tool-orchestrator.js';
// 创建一个具有错误处理和重试逻辑的编排器
const orchestrator = new ToolOrchestrator({
maxRetries: 3,
retryDelay: 1000,
fallbackStrategy: 'alternative-tool'
});
// 使用多个工具定义一个复杂的任务
const task = orchestrator.createTask()
.use('gemini-tool')
.withConfig({ temperature: 0.2 })
.forStep('analyze-requirements')
.use('github-tool')
.withAuth(process.env.GITHUB_TOKEN)
.forStep('create-pr')
.use('database-tool')
.withRetry(5)
.forStep('store-results');
// 执行并进行进度监控
const result = await task.execute({
onProgress: (step, progress) => console.log(`${step}: ${progress}%`),
onError: (step, error) => console.error(`Error in ${step}:`, error)
});
2. 具有记忆功能的上下文感知工具选择
import { ContextAnalyzer } from './lib/context-analyzer.js';
import { MemoryStore } from './lib/memory-store.js';
// 使用持久内存初始化
const memory = new MemoryStore({
storage: 'redis',
ttl: '24h',
namespace: 'tool-selection'
});
const analyzer = new ContextAnalyzer({
memory,
embeddings: true,
contextWindow: 10
});
// 使用历史数据分析上下文
const toolSuggestions = await analyzer.analyze({
currentMessage: "Help me optimize this SQL query",
userHistory: await memory.getUserHistory('user123'),
projectContext: {
language: 'SQL',
database: 'PostgreSQL',
performance: true
}
});
// 获取具有置信度分数的排名工具建议
const rankedTools = toolSuggestions.getRankedTools();
console.log(rankedTools);
// [
// { tool: 'database-optimizer', confidence: 0.95 },
// { tool: 'query-analyzer', confidence: 0.85 },
// { tool: 'performance-monitor', confidence: 0.75 }
// ]
3. 具有错误恢复功能的高级工作流
import { WorkflowBuilder } from './lib/workflow-builder.js';
import { ErrorRecoveryStrategy } from './lib/error-recovery.js';
// 创建一个具有复杂错误处理的工作流
const workflow = new WorkflowBuilder()
.addNode('data-extraction', {
tool: 'database-tool',
fallback: 'file-system-tool',
validation: (data) => data.length > 0
})
.addNode('data-transformation', {
tool: 'gemini-tool',
retries: 3,
timeout: '5m',
recovery: new ErrorRecoveryStrategy({
onTimeout: 'switch-model',
onError: 'reduce-batch-size',
onValidationFail: 'human-review'
})
})
.addNode('data-loading', {
tool: 'database-tool',
mode: 'batch',
batchSize: 1000,
monitoring: {
metrics: ['throughput', 'latency', 'errors'],
alerts: {
errorRate: { threshold: 0.01, action: 'pause' },
latency: { threshold: '500ms', action: 'reduce-batch-size' }
}
}
})
.setEdges([
['data-extraction', 'data-transformation'],
['data-transformation', 'data-loading']
])
.build();
// 执行并进行实时监控
const execution = await workflow.execute({
inputs: { query: 'SELECT * FROM large_table' },
monitoring: {
interval: '1s',
metrics: ['progress', 'resource-usage', 'throughput'],
onMetric: (metric) => console.log(`${metric.name}: ${metric.value}`),
onAlert: (alert) => handleAlert(alert)
}
});
4. AI 驱动的工具组合
import { AIToolComposer } from './lib/ai-tool-composer.js';
import { ToolRegistry } from './lib/tool-registry.js';
// 初始化 AI 驱动的工具组合器
const composer = new AIToolComposer({
model: 'gemini-2.0-flash',
optimization: 'performance',
constraints: {
maxTools: 5,
maxMemory: '2GB',
timeout: '10m'
}
});
// 注册具有功能的可用工具
const registry = new ToolRegistry()
.register('database-tool', {
capabilities: ['query', 'transform', 'optimize'],
costs: { memory: '500MB', latency: '100ms' }
})
.register('gemini-tool', {
capabilities: ['analyze', 'generate', 'translate'],
costs: { memory: '1GB', latency: '2s' }
});
// 让 AI 为任务组合最佳工具链
const composition = await composer.compose({
task: 'Analyze and optimize database performance',
context: {
database: 'PostgreSQL',
dataSize: '10GB',
performance: {
current: { qps: 1000, latency: '200ms' },
target: { qps: 2000, latency: '100ms' }
}
},
registry
});
// 执行 AI 组合的工具链
const result = await composition.execute({
monitoring: true,
optimization: true,
reporting: true
});
🚀 用法
运行服务器
启动主服务器:
npm run server
测试上下文感知选择器
npm run test
运行示例
提供了几个示例脚本来演示各种功能:
# 测试 Gemini API 集成
node examples/gemini-example.js
# 测试上下文感知选择器
node test-context-aware-selector.js
# 运行工作流示例
node examples/test-workflow.js
🔌 可用的工具集成
AI 工具
- Gemini API: Google 的生成式 AI 模型,用于文本生成、聊天等
- 顺序思考: 逐步推理工具
- 网络研究: 互联网搜索功能
开发工具
- GitHub: 存储库管理、问题跟踪、PR 创建
- 文件系统: 文件操作、代码编辑
- 数据库: PostgreSQL 集成(计划中)
内存工具
- 知识图谱: 用于存储和检索结构化信息
- 向量存储: 用于语义搜索和检索
📊 上下文感知的工具选择
上下文感知选择器分析用户消息和历史使用情况,以呈现最相关的工具:
// 示例用法
import { selectToolsForContext } from './context-aware-selector.js';
const userContext = {
message: "Help me create a new React component",
history: ["git status", "npm install"]
};
const selectedTools = selectToolsForContext(userContext, allTools);
🔄 工作流系统
定义具有依赖关系的复杂工作流并执行它们:
// 示例工作流定义 (JSON)
const workflow = {
"id": "db-integration",
"description": "Database Integration Workflow",
"concurrencyLimit": 3,
"steps": [
{
"id": "research-orm",
"type": "web-search",
"parameters": {
"query": "Node.js ORM comparison prisma sequelize"
}
},
// 其他步骤...
]
};
🌐 Gemini API 集成
使用 Google 的 Gemini 模型执行各种任务:
import { GeminiClient } from './lib/gemini-client.js';
// 初始化客户端
const client = new GeminiClient();
// 生成文本
const result = await client.generateText("Explain quantum computing");
console.log(result.text);
// 生成 JSON
const userData = await client.generateJson(
"Create a JSON user profile with name, email, and age"
);
console.log(userData);
// 流式传输响应
const stream = await client.generateStream("Write a story about a robot");
for await (const chunk of stream.stream) {
process.stdout.write(chunk.text());
}
🔍 API 端点
服务器公开以下 API 端点:
POST /api/tools
: 注册新工具GET /api/tools
: 获取所有可用工具POST /api/execute
: 执行工具GET /api/context
: 获取上下文感知的工具建议POST /api/workflows
: 注册新工作流GET /api/workflows
: 获取所有工作流GET /api/workflows/:id
: 获取特定工作流POST /api/workflows/:id/execute
: 执行工作流
📚 文档
全面的文档位于 docs/
目录中:
🛠️ 开发
添加新工具
- 在
tools/
目录中创建工具实现 - 在
schema/
目录中定义工具模式 - 在
servers/
目录中添加服务器实现 - 在
server.js
中注册该工具
运行测试
npm test
🤝 贡献
欢迎贡献!请随时提交 Pull Request。
- Fork 存储库
- 创建您的功能分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开 Pull Request
📄 许可证
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
📞 联系
项目维护者: David Weatherspoon
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。