KM

kyopark2014/mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

41 stars 9 forks 质量 83 趋势 32Apache-2.0

它展示了如何使用模型-上下文-协议。

概览

MCP(模型上下文协议)正迅速普及,成为利用外部数据的生成式人工智能应用的关键接口。它于2024年11月作为Anthropic上的开源项目启动,目前不仅得到Cursor的支持,也被OpenAI支持。在这里,我们解释用MCP和LangChain创建的LangGraph应用如何利用MCP。这里实现的RAG是亚马逊的全托管RAG服务Knowledge Base,因此文本提取、同步和分块文档等任务可以轻松完成,图像和表格也可以通过多模态分析。API通过AWS Lambda配置,使RAG能够轻松从MCP服务器访问。 下面的架构展示了在 AWS 环境中配置包含 MCP 的代理。代理可以通过 MCP 服务器/客户端架构利用外部数据源。MCP 客户端通过基于 MCP 服务器和 JSON-RPC 协议的 stdio/SSE 通信。使用 Stdio 时,MCP 服务器由 Python 和 Java 等代码组成,客户端请求时通过 RAG 或互联网收集或传递数据。使用 SSE 时,MCP 客户端和服务器通过 IP 通信。这里,应用界面使用 Streamlit 配置,用户通过 ALB - CloudFront 通过浏览器的 HTTPS 访问应用。此外,本节还解释了如何使用 LangGraph 开发基于 MCP 的应用程序,LangGraph 提供了更好的定制化。

概述(AI 翻译)

MCP(模型上下文协议)正迅速普及,成为利用外部数据的生成式人工智能应用的关键接口。它于2024年11月作为Anthropic上的开源项目启动,目前不仅得到Cursor的支持,也被OpenAI支持。在这里,我们解释用MCP和LangChain创建的LangGraph应用如何利用MCP。这里实现的RAG是亚马逊的全托管RAG服务Knowledge Base,因此文本提取、同步和分块文档等任务可以轻松完成,图像和表格也可以通过多模态分析。API通过AWS Lambda配置,使RAG能够轻松从MCP服务器访问。

下面的架构展示了在 AWS 环境中配置包含 MCP 的代理。代理可以通过 MCP 服务器/客户端架构利用外部数据源。MCP 客户端通过基于 MCP 服务器和 JSON-RPC 协议的 stdio/SSE 通信。使用 Stdio 时,MCP 服务器由 Python 和 Java 等代码组成,客户端请求时通过 RAG 或互联网收集或传递数据。使用 SSE 时,MCP 客户端和服务器通过 IP 通信。这里,应用界面使用 Streamlit 配置,用户通过 ALB - CloudFront 通过浏览器的 HTTPS 访问应用。此外,本节还解释了如何使用 LangGraph 开发基于 MCP 的应用程序,LangGraph 提供了更好的定制化。

利用MCP

MCP 基础

用户不仅可以通过安装在电脑上的 Claude Desktop 和光标等 AI 工具连接到 MCP 服务器,还可以通过主要以代理形式开发的应用程序。MCP 服务器提供了响应 MCP 客户端请求时能够执行的功能,并处理客户端的请求。

本页由 AI 翻译,技术细节请以原文为准。

安装

npx -y @smithery/cli@latest run @gradusnikov/google-search-mcp-server --config {\"googleCseId\":\"b5cd8c527fbd64b72\ \"googleApiKey\":\"AIzbSyDQlYpck8-9TbBSuxoew1luOGVB6unRPNk\"}
新手?先看 mcpskill.org 教程 →

配置

from mcp import ClientSession, StdioServerParameters def load_mcp_server_parameters(): mcp_json = json.loads(mcp_config) mcpServers = mcp_json.get("mcpServers") command = "" args = [] if mcpServers is not None: for server in mcpServers: config = mcpServers.get(server) if "command" in config: command = config["command"] if "args" in config: args = config["args"] break return StdioServerParameters( command=command, args=args )