mcpField
M
MCP Client

MCP Client

github.com/garvk聊天应用175 周前更新

关于 MCP Client

MCP Client 是一个用于与 Claude 3.5 Sonnet 对话并处理工具调用查询的 Python 客户端。它提供命令行界面和 Chainlit UI,并通过 MCP 访问 PostgreSQL。

主要功能

  1. 01与 Claude 3.5 Sonnet 对话
  2. 02命令行和 Chainlit 界面
  3. 03通过 MCP 访问 PostgreSQL
  4. 04支持 Python 和 JavaScript MCP 服务

适用场景

  1. 01通过命令行与 Claude 对话
  2. 02使用 Web UI 查询数据库
  3. 03对 PostgreSQL 执行工具调用查询

MCP 相关

客户端可连接 MCP 服务,包括 PostgreSQL MCP 服务,并支持 Python 和 JavaScript 实现的服务端。

详细介绍

MCP 客户端

Model Context Protocol (MCP) 的 Python 客户端实现,集成 Claude 3.5 Sonnet。

前置要求

  • Python 3.12 或更高版本
  • PostgreSQL 数据库
  • Node.js(用于运行 PostgreSQL MCP 服务)
  • uv 包管理器(推荐)或 pip

安装

  1. 克隆仓库:

  2. 创建并激活虚拟环境:

# Create virtual environment
uv venv

# Activate virtual environment
# On Windows:
.venv\Scripts\activate
# On Unix or MacOS:
source .venv/bin/activate



  1. 安装依赖
# For python equivalent of:
# Install required packages
uv add mcp anthropic python-dotenv chainlit asyncpg

# or install from requirements.txt

# For node:
npm init

npm install @modelcontextprotocol/server-postgres
  1. 在项目根目录创建 .env 文件并添加你的 Anthropic API 密钥:
ANTHROPIC_API_KEY=your_api_key_here

使用

客户端可以在两种模式下运行:

  1. 命令行界面:
uv run client.py <path-to-mcp-server> <database-url>

例如:

uv run client.py ./node_modules/@modelcontextprotocol/server-postgres/dist/index.js postgresql://localhost/your_database
  1. 使用 Chainlit 的 UI 首次设置:
  2. 在 postgres 中创建名为 chat_history 的数据库
  3. 通过运行 init_db.py 初始化数据库中的表。bash python app/init_db.py

要启动 chainlit,请运行:

chainlit run app/chainlit_app.py

其中:

  • <path-to-mcp-server> 是 MCP 服务 JavaScript 文件的路径
  • <database-url> 是你的 PostgreSQL 连接字符串

运行后,你可以通过命令行界面与客户端交互。输入你的查询,输入 'quit' 退出。

功能

  • 与 Claude 3.5 Sonnet 的交互式聊天界面
  • 通过 MCP 与 PostgreSQL 数据库集成
  • 支持 Python 和 JavaScript MCP 服务
  • 基于工具的查询处理

开发

该项目使用:

  • anthropic 用于 Claude API 集成
  • mcp 用于 Model Context Protocol 实现
  • python-dotenv 用于环境变量管理

许可证

MIT 许可证

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。