开始使用MCP服务器
这个仓库旨在快速介绍MCP服务器,并且在此我们将特别关注基于HTTP托管的选项。
本仓库的目的是展示如何轻松搭建您自己的MCP服务器,同时强调MCP服务器如何与GitHub Copilot等工具进行交互,并揭示一些幕后发生的“魔法”背后的原理。
在这些示例中,我们使用的是结合了TypeScript的Express.js,但其他语言的SDK也存在。
基础结构
有多种托管MCP服务器的方式,您可以将其作为节点包运行,作为Docker镜像运行,或者,正如我们将在本仓库中讨论的,作为Web服务器/API运行。
我们设置了API,并将在其中托管MCP服务器本身。我们创建了一个POST端点,客户端将使用该端点连接并与MCP服务器本身进行通信。这种通信可以是有状态的,但为了简化,我们将不实现任何有状态设计。在API中,我们配置MCP服务器;为其命名、设置版本,并注册工具、资源和提示。
客户端将使用相同的POST端点来建立连接、列出可用的工具、资源和提示,并执行这些操作/完成这些动作。
在MCP服务器中,我们可以创建/注册三种不同类型的实体:资源、工具和提示。 我们可以根据需要将它们设计得简单或复杂,但在本入门指南中,我们将保持简单。
逐步指南
在文件夹中 docs 我们提供了一份逐步指南,用于设置MCP服务器、添加资源、工具和提示。每个部分都是独立的,因此您可以直接跳转到您想阅读的部分。
以下是各部分内容:
额外建议
虽然创建许多非常细致的工具很容易,但通常创建更高级别且能执行完整操作的工具是更好的选择。这是因为这样模型需要自行推断的部分就减少了,出错的风险也更低。此外,大多数模型在处理工具数量上存在限制,因此拥有更少但更高级别的工具通常是更好的方法。
安全
在创建能够执行操作的工具时,考虑安全性方面至关重要。确保你创建的工具具备必要的检查和平衡机制,以防止发生意外操作。这可能包括确认步骤、权限检查以及对所执行操作的记录。
为了使MCP客户端能够自动连接到受保护的MCP服务器,服务器需要支持带有动态客户端注册的OAuth 2.1。 官方文档
这在设置时可能会有点棘手,尤其是当Entra ID和许多其他身份提供商不支持动态客户端注册时。幸运的是,许多开发工具(如Visual Studio Code)已经内置了应用程序注册功能,可以为此目的自动使用。
