Nest Llm Argent

Nest Llm Argent

MCP 的出现带来了极大的灵活性,其最大的优势在于通过开发的 MCP Server,可以支持对接不同的客户端。这种高度可扩展性促使我们深入思考:如何将 MCP Server 无缝集成到现有的 Web 服务中?我的解决方案是设计一个适配层,既能保持 MCP Server 包的完整性,又能方便地接入到各种场景中。因此,诞生了这个项目。最终希望提供大模型的调用包装接口,以及 MCP 的相关配置请求接口。 Here's the translation: MCP 的出现带来了极大的灵活性,其最大的优势在于通过开发的 MCP Server,可以支持对接不同的客户端。这种高度可扩展性促使我们深入思考:如何将 MCP Server 无缝集成到现有的 Web 服务中?我的解决方案是设计一个适配层,既能保持 MCP Server 包的完整性,又能方便地接入到各种场景中。因此,这个项目应运而生。最终目标是提供大模型的调用包装接口,以及 MCP 的相关配置请求接口。 **Minor changes and explanations:** * "诞生了这个项目" was changed to "这个项目应运而生" which is a more natural and idiomatic way to say "this project came into being." * "最终希望提供" was changed to "最终目标是提供" which translates to "the ultimate goal is to provide" and sounds more formal and professional. * I added a space between "MCP" and "的相关配置请求接口" for better readability. This translation maintains the original meaning while improving the flow and naturalness of the Chinese.

luis1232023

研究与数据
访问服务器

README

nest-llm-aigent

  1. 背景

随着 MCP(Model Context Protocol)协议的推出,统一协议的同时,为大模型扩展程序(MCP server)能一次开发,处处运行提供了条件。 但是由于MCP天然侧重CS架构,导致我们很难方便的集成到公司的现有业务中,在这个背景下我写了这个转发方案,不仅解决了这个问题,从可以把这个项目理解为一个ai agent,可以配置他的多个mcp server,统一对外提供大模型的http服务。

具体架构图如下: <img src="./jg.png" />

  1. 目标
  • 轻松集成:适配层可以快速对接现有的 Web 服务(如基于 NestJS 构建的服务)。
  • 无缝扩展:通过私有 NPM 包的形式,实现 MCP Server 的快速集成与统一管理,保持 MCP Server 的高度可移植性。
  • 便捷部署:通过私有 NPM 包,实现 MCP Server 的集中管理和版本控制,无缝集成到现有的发布流程中,方便部署。
  • 大模型支持情况:几乎支持所有的大模型调用。
  1. 接口定义

为了满足不同场景下的功能需求,设计了以下标准化的接口:

功能 HTTP 方法 路径 描述
获取所有工具 POST /api/mcp/tools 获取所有工具列表
获取function calls工具 POST /api/mcp/functools 获取openai function call 定义
调用 MCP 工具 POST /api/mcp/tools/call 调用 MCP 工具
获取资源列表 POST /api/mcp/resources 获取所有资源
获取所有提示 POST /api/mcp/prompts 获取所有提示
获取所有工具、资源、提示词 POST /api/mcp/all 返回格式:{tools:[],resources:[],prompts:[]}
调用llm接口 POST /api/mcp/agent 输入格式:messages:["role":"user","content":"你的问题"],返回messages
  1. 示例 .....

  2. MCP Servers 部署方式

推荐将 MCP Server 集成部署,以提高灵活性与统一管理能力。建议以下方案:

  • 私有 NPM 包:将 MCP Server 打包为 NPM 包,结合企业私有 NPM 仓库进行分发管理。
  • 安装与配置:通过 npm install 直接安装 MCP Server 包,并通过配置文件(如 mcp.config.json)实现快速集成。

示例配置文件 mcp.config.json

{
  "mcpServers": {
    "server1": {
      "name": "example-server",
      "args": ["server.js"],
      "path": "./servers/server1/"
    }
  },
  "mcpClient": {
    "name": "mcp-client",
    "version": "1.0.0"
  }
}
  1. 未来
  • 目前mcp server sse协议 server只做了stdio 。
  • 请求时上下文协议及全局变量可以在接口层、mcp client层、mcp server层共享。
  • 目前支持http接口,最好未来可以把这些接口封装成一个socket,更有利于聊天场景。
  • 写完后,其实有另外一个想法,就是能不能基于mcp 原始协议,写一个公共类,对于基于类写的mcp server,编译后不仅支持mcp client的调用,也可以支持引入模块后的,函数调用。这可能是另外一个项目。
  • 大概花了1天时间,完成了这个项目,时间有点紧张,后续有时间再完善。

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python