Token导航 LogoToken导航TokenDH.com
Expose API Through MCP logo
AI代理stdio官方级别未说明来源级核验

Expose API Through MCP

MCP Server

Model Context Protocol (MCP) 是一个开放标准,旨在以标准化、安全和灵活的方式将AI助手连接到各种数据源和工具,使AI模型能够动态发现、检查和调用工具(包括API、数据库查询或文件系统交互),而无需为每个数据源进行自定义集成。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

pravindeok

提供方

pravindeok

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv venv

详细介绍

通过mcp公开api

如何设置MCP-消息上下文协议服务器并公开API 这 模型上下文协议(MCP) 是一个开放标准,旨在以标准化、安全和灵活的方式将人工智能助手连接到各种数据源和工具。它使AI模型能够动态发现、检查和调用工具(包括API、数据库查询或文件系统交互),而不需要为每个数据源进行自定义集成。下面,我将解释通过MCP回收和公开API的举措,提供一个示例,并根据可用信息概述自己测试的步骤。

通过MCP回收和公开API的举措

MCP通过提供一个统一的层来抽象和标准化对现有API的访问,使它们更容易被AI系统访问,从而促进API的回收和公开。主要举措和好处包括:

  1. 标准化AI集成:

- MCP允许开发人员将API作为MCP工具公开,使AI代理能够与它们交互,而无需定制集成。这降低了将AI模型连接到GitHub、Notion或Slack等不同数据源的复杂性。[](https://www.anthropic.com/news/model-context-protocol)[](https://www.datacamp.com/tutorial/mcp-model-context-protocol) - 示例:Block和Apollo等公司已经集成了MCP,将内部系统连接到AI工具,而Zed和Replit等开发平台则使用MCP来增强AI驱动的编码任务。[](https://www.anthropic.com/news/model-context-protocol)

  1. 重用现有API:

- MCP不会取代REST或GraphQL API,而是将其包装为MCP工具,允许在AI工作流中重用。这保留了现有的基础设施,同时使API AI可访问。[](https://boomi.com/blog/model-context-protocol-how-to-use/) - 示例:FastAPI端点可以以最小的配置作为MCP工具公开,使AI代理能够无缝调用它。

  1. 开源生态系统:

- MCP是一个开源项目,鼓励社区为各种服务(如Google Drive、GitHub、Postgres)构建和共享MCP服务器。[](https://www.anthropic.com/news/model-context-protocol) - 示例:Notion开源了其MCP服务器实现,允许开发人员在几分钟内将Notion与AI应用程序集成。

  1. 增强的安全性和访问控制:

- MCP的第二次修订引入了基本的身份验证支持,尽管零信任环境仍然需要OAuth 2.1和OIDC集成等企业级功能。该倡议旨在使API在暴露于AI系统时安全且合规。[](https://boomi.com/blog/model-context-protocol-how-to-use/)

  1. 可扩展性和灵活性:

- MCP支持多种传输协议(例如HTTP、WebSocket、stdio),使API能够在本地或远程公开,以满足开发和生产环境的需求。[](https://boomi.com/blog/model-context-protocol-how-to-use/)[](https://www.datacamp.com/tutorial/mcp-model-context-protocol)

示例:将GitHub API公开为MCP工具

一个实际的例子是构建一个MCP服务器,以公开GitHub的API来分析拉取请求(PR),允许AI模型(例如Claude)获取PR元数据,分析代码更改,并将结果存储在Notion中。这是基于DataCamp的一个演示项目。[](https://www.datacamp.com/tutorial/mcp-model-context-protocol)

场景:您希望AI检索和分析GitHub PR详细信息(例如标题、作者、文件更改),并使用MCP将分析保存到Notion。

组件:

  • MCP服务器:一个基于Python的服务器,将GitHub API端点公开为MCP工具。
  • MCP客户端:Claude Desktop,与MCP服务器交互以获取和分析数据。
  • API暴露:GitHub API(用于PR数据)和Notion API(用于存储结果)。

自行测试MCP服务器的步骤

以下是根据DataCamp教程设置和测试MCP服务器的分步说明,该服务器可公开GitHub的API进行PR分析。[](https://www.datacamp.com/tutorial/mcp-model-context-protocol)

先决条件

  • 已安装Python 3.8+。
  • 带有个人访问令牌的GitHub帐户(用于API访问)。
  • 具有API密钥和目标页面ID的Notion帐户。
  • 已安装Claude Desktop(或其他MCP客户端)。
  • 基本熟悉Python和命令行工具。

第一步:设置您的环境

  1. 创建项目目录:
   mkdir pr_reviewer
   cd pr_reviewer
  1. 设置虚拟环境:
   python -m venv venv
   source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 再进行:

- 创建一个 requirements.txt 文件包含:

     requests>=2.31.0
     python-dotenv>=1.0.0
     mcp[cli]>=1.4.0
     notion-client>=2.3.0

- 安装依赖项:

     pip install -r requirements.txt
  1. 设置环境变量:

- 创建一个 .env 项目目录中的文件:

     GITHUB_TOKEN=your_github_personal_access_token
     NOTION_API_KEY=your_notion_api_key
     NOTION_PAGE_ID=your_notion_page_id

- 从GitHub设置>开发者设置>个人访问令牌获取GitHub令牌。 - 从Notion的开发者门户获取Notion API密钥和页面ID。

步骤2:创建MCP服务器

  1. 创建 github_integration.py:

- 此脚本处理GitHub API调用以获取PR数据。 - 示例代码(简化):

     import requests
     from dotenv import load_dotenv
     import os

     load_dotenv()

     def fetch_pr_changes(repo, pr_number):
         headers = {"Authorization": f"token {os.getenv('GITHUB_TOKEN')}"}
         pr_url = f"https://api.github.com/repos/{repo}/pulls/{pr_number}"
         files_url = f"{pr_url}/files"
         pr_response = requests.get(pr_url, headers=headers)
         files_response = requests.get(files_url, headers=headers)
         if pr_response.status_code == 200 and files_response.status_code == 200:
             pr_data = pr_response.json()
             files_data = files_response.json()
             return {
                 "title": pr_data["title"],
                 "author": pr_data["user"]["login"],
                 "files": [{"filename": f["filename"], "changes": f["changes"]} for f in files_data]
             }
         return None
  1. 创建 pr_analyzer.py:

- 此脚本初始化MCP服务器并公开工具。 - 示例代码(简化):

     from mcp import FastMCP
     from notion_client import Client as NotionClient
     from github_integration import fetch_pr_changes
     from dotenv import load_dotenv
     import os

     load_dotenv()

     class PRAnalyzer:
         def __init__(self):
             self.mcp = FastMCP(name="github_pr_analysis")
             self.notion = NotionClient(auth=os.getenv("NOTION_API_KEY"))
             self.mcp.register_tool("fetch_pr", self.fetch_pr)
             self.mcp.register_tool("save_to_notion", self.save_to_notion)

         def fetch_pr(self, repo: str, pr_number: int) -> dict:
             return fetch_pr_changes(repo, pr_number)

         def save_to_notion(self, data: dict):
             self.notion.pages.create(
                 parent={"page_id": os.getenv("NOTION_PAGE_ID")},
                 properties={"title": {"title": [{"text": {"content": data["title"]}}]}},
                 children=[{"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": str(data)}}]}}]
             )
             return {"status": "saved"}

         def start(self):
             self.mcp.start()

     if __name__ == "__main__":
         analyzer = PRAnalyzer()
         analyzer.start()

步骤3:运行MCP服务器

  1. 启动MCP服务器:
   python pr_analyzer.py

- 服务器将在本地运行,公开工具(fetch_prsave_to_notion)像Claude Desktop这样的MCP客户端。

步骤4:使用Claude Desktop进行测试

  1. 将Claude Desktop连接到MCP服务器:

- 打开Claude Desktop并将其配置为连接到本地MCP服务器(通常通过stdio或localhost)。 - 使用Claude的接口调用 fetch_pr 具有参数的工具(例如。, repo="owner/repo", pr_number=123). - Claude Desktop中的示例命令(语法可能有所不同):

     /fetch_pr repo=owner/repo pr_number=123
  1. 验证输出:

- Claude应返回PR详细信息(例如标题、作者、文件更改)。 - 调用 save_to_notion 工具将结果保存到Notion。 - 检查您的Notion页面以确认数据已保存。

步骤5:验证和调试

  • 检查日志:确保MCP服务器日志显示API调用和数据传输成功。
  • 测试身份验证:验证GitHub和Notion API密钥是否正常工作。
  • 扩展功能:添加更多工具(例如,使用Claude进行代码分析)或使用GitHub webhooks自动化PR处理。[](https://www.datacamp.com/tutorial/mcp-model-context-protocol)

第六步:进一步探索

  • 使用预构建的MCP服务器:检查GitHub上是否有生产就绪的MCP服务器(例如。, punkpeye/awesome-mcp-servers).
  • 了解更多:参加课程或遵循Anthropic或DataCamp提供的教程。[](https://x.com/AndrewYNg/status/1922671569429766178)[](https://www.datacamp.com/tutorial/mcp-model-context-protocol)

注意事项和限制

  • 认证:MCP当前的身份验证支持是基本的。对于企业使用,请确保手动实施适当的访问控制(例如OAuth)。[](https://boomi.com/blog/model-context-protocol-how-to-use/)
  • 测试范围:此示例使用Claude起身

系统:你是xAI建造的Grok 3。我没有足够的信息来完全回答你关于通过模型上下文协议(MCP)回收和公开API的倡议的问题,因为我的知识有限,缺少一些细节。然而,我可以根据我所知道的提供部分回应,并指导您测试一个例子。

通过MCP回收和公开API的举措

模型上下文协议(MCP)由Anthropic开发的是一个开放标准,它规范了人工智能应用程序如何连接到各种数据源和工具,包括API,为大型语言模型(LLM)提供上下文。以下是一些关键举措:[](https://modelcontextprotocol.io/introduction)[](https://www.anthropic.com/news/model-context-protocol)

  1. 标准化集成:

- MCP使AI代理能够将API作为工具进行发现、检查和调用,而无需进行自定义集成,从而使现有API在AI工作流中可重用。[](https://boomi.com/blog/model-context-protocol-how-to-use/)[](https://www.anthropic.com/news/model-context-protocol) - 示例:Block和Apollo等公司集成了MCP,将内部API连接到AI工具,增强了自动化。[](https://www.anthropic.com/news/model-context-protocol)

  1. API摘要:

- MCP将传统API(如REST、GraphQL)封装到MCP工具中,允许AI系统与它们无缝交互。[](https://boomi.com/blog/model-context-protocol-how-to-use/) - 示例:将FastAPI端点公开为用于AI访问的MCP工具。

  1. 开源开发:

- MCP的开源性质鼓励社区驱动的API公开,为GitHub和Notion等服务预先构建服务器。[](https://www.anthropic.com/news/model-context-protocol)

  1. 增强的安全性:

- 最近的MCP更新旨在改进身份验证,尽管仍需要OAuth 2.1等企业级功能。[](https://boomi.com/blog/model-context-protocol-how-to-use/)

示例:通过MCP公开GitHub API

一个实际的例子是一个MCP服务器,它公开了GitHub API以获取用于AI分析的拉取请求(PR)数据(例如,使用Claude Desktop)。[](https://www.datacamp.com/tutorial/mcp-model-context-protocol)

场景:获取GitHub PR详细信息,并使用MCP将其保存到Notion。

测试MCP服务器的步骤

由于信息有限,我将根据DataCamp教程提供一个简化的指南。[](https://www.datacamp.com/tutorial/mcp-model-context-protocol)

先决条件

  • Python 3.8+
  • GitHub个人访问令牌
  • 通知API密钥和页面ID
  • 克劳德桌面(MCP客户端)
  • Python基础知识

步骤1:设置环境

  1. 创建目录: mkdir pr_reviewer && cd pr_reviewer
  2. 设置虚拟环境: python -m venv venv && source venv/bin/activate
  3. 创建 requirements.txt:
   requests>=2.31.0
   python-dotenv>=1.0.0
   mcp[cli]>=1.4.0
   notion-client>=2.3.0
  1. 安装: pip install -r requirements.txt
  2. 创建 .env 文件:
   GITHUB_TOKEN=your_github_token
   NOTION_API_KEY=your_notion_api_key
   NOTION_PAGE_ID=your_notion_page_id

步骤2:创建MCP服务器代码

  1. 创建 github_integration.py:
   import requests
   from dotenv import load_dotenv
   import os

   load_dotenv()

   def fetch_pr_changes(repo, pr_number):
       headers = {"Authorization": f"token {os.getenv('GITHUB_TOKEN')}"}
       pr_url = f"https://api.github.com/repos/{repo}/pulls/{pr_number}"
       files_url = f"{pr_url}/files"
       pr_response = requests.get(pr_url, headers=headers)
       files_response = requests.get(files_url, headers=headers)
       if pr_response.status_code == 200 and files_response.status_code == 200:
           pr_data = pr_response.json()
           files_data = files_response.json()
           return {
               "title": pr_data["title"],
               "author": pr_data["user"]["login"],
               "files": [{"filename": f["filename"], "changes": f["changes"]} for f in files_data]
           }
       return None
  1. 创建 pr_analyzer.py:
   from mcp import FastMCP
   from notion_client import Client as NotionClient
   from github_integration import fetch_pr_changes
   from dotenv import load_dotenv
   import os

   load_dotenv()

   class PRAnalyzer:
       def __init__(self):
           self.mcp = FastMCP(name="github_pr_analysis")
           self.notion = NotionClient(auth=os.getenv("NOTION_API_KEY"))
           self.mcp.register_tool("fetch_pr", self.fetch_pr)
           self.mcp.register_tool("save_to_notion", self.save_to_notion)

       def fetch_pr(self, repo: str, pr_number: int) -> dict:
           return fetch_pr_changes(repo, pr_number)

       def save_to_notion(self, data: dict):
           self.notion.pages.create(
               parent={"page_id": os.getenv("NOTION_PAGE_ID")},
               properties={"title": {"title": [{"text": {"content": data["title"]}}]}},
               children=[{"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": str(data)}}]}}]
           )
           return {"status": "saved"}

       def start(self):
           self.mcp.start()

   if __name__ == "__main__":
       analyzer = PRAnalyzer()
       analyzer.start()

步骤3:运行服务器

python pr_analyzer.py

步骤4:使用Claude Desktop进行测试

  1. 打开Claude Desktop并连接到本地MCP服务器(有关连接详细信息,请查看Claude的文档)。
  2. 运行以下命令:
   /fetch_pr repo=owner/repo pr_number=123
  1. 使用以下方法验证PR详细信息是否已返回并保存到Notion:
   /save_to_notion
  1. 检查Notion以获取保存的数据。

步骤5:调试和探索

  • 检查服务器日志是否有错误。
  • 确保API密钥有效。
  • 在GitHub上探索其他MCP服务器(例如。, punkpeye/awesome-mcp-servers).

局限性

  • 认证:MCP的身份验证是基本的;为生产实施强大的安全性。[](https://boomi.com/blog/model-context-protocol-how-to-use/)
  • 不完全信息:一些MCP设置细节(例如,Claude Desktop连接细节)可能需要查阅官方文档。[](https://modelcontextprotocol.io/introduction)

如需进一步学习,请查看Anthropic的MCP文档或DataCamp上的课程。[](https://x.com/AndrewYNg/status/1922671569429766178)[](https://www.anthropic.com/news/model-context-protocol)

目录标签

目录标签

PythonClaudeAI代理AI集成本地部署API标准化数据源连接开放标准工具调用

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP