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

MCP exp

MCP Server

一个基于终端的聊天客户端,集成MCP服务器和OpenAI API,提供天气服务等功能。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
位置天气PythonCursorCursor

安装说明

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

作者 / 组织

alan-meigs

提供方

alan-meigs

最后核验

2026/5/17 20:38

运行时

Python

快速接入

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

命令预览

python weather.py

详细介绍

基于终端的聊天客户端与MCP服务器集成

该项目演示了如何构建一个基于终端的聊天客户端接口,该接口连接到MCP服务器并与OpenAI的API集成。它包括一个简单的天气服务,作为MCP功能的一个例子。

先决条件

  • Python 3.8或更高版本
  • UV包管理器(一个快速、可靠的Python包安装程序和解析器)

安装

1.安装UV

UV是一个现代的Python包管理器,与pip等传统工具相比,它提供了显著的性能改进。它是用Rust编写的,并提供:

  • 更快的软件包安装
  • 可靠的依赖关系解决
  • 内置虚拟环境管理
  • 与现有的Python工具兼容

要安装UV,请运行:

curl -LsSf https://astral.sh/uv/install.sh | sh

2.项目设置

  1. 初始化新项目:
uv init
  1. 创建并激活虚拟环境:
uv venv
source .venv/bin/activate  # On Unix/macOS
# or
.venv\Scripts\activate  # On Windows
  1. 安装所需的软件包:
uv pip install httpx mcp[cli] openai python-dotenv

项目结构和实施指南

该项目由两个主要部分组成:聊天客户端(client.py)以及气象服务(weather.py).让我们来了解一下每个组件是如何构建的,以及每个部分的作用。

构建聊天客户端(Client.py)

聊天客户端构建为一个异步Python应用程序,连接到MCP服务器和OpenAI的API。以下是它的构造方式:

  1. 导入和设置
   import asyncio
   import os
   import sys
   from typing import Optional
   from contextlib import AsyncExitStack
   from dotenv import load_dotenv
   import openai
   from mcp import ClientSession, StdioServerParameters
   from mcp.client.stdio import stdio_client

- asyncio:用于异步编程 - AsyncExitStack:管理异步资源的清理 - dotenv:从.env文件加载环境变量 - mcp:服务器通信的核心MCP功能

  1. MCP客户端类

主客户端类处理:

- 与MCP服务器的连接 - OpenAI API集成 - 消息处理 - 工具执行

关键方法:

- connect_to_server():建立与MCP服务器的连接 - process_query():处理用户查询和工具执行 - chat_loop():管理交互式聊天会话 - cleanup():确保适当的资源清理

  1. 主函数
   async def main():
       client = MCPClient()
       try:
           await client.connect_to_server(sys.argv[1])
           await client.chat_loop()
       finally:
           await client.cleanup()

- 初始化客户端的入口点 - 连接到指定的服务器 - 运行聊天循环 - 确保适当的清理

建立气象服务(Weather.py)

天气服务构建为MCP服务器,通过国家气象局API提供天气信息:

  1. 服务初始化
   from mcp.server.fastmcp import FastMCP
   mcp = FastMCP("weather")

- 创建名为“weather”的MCP服务器实例 - 设置服务器基础架构

  1. API集成
   NWS_API_BASE = "https://api.weather.gov"
   USER_AGENT = "weather-app/1.0"

- 为美国国家气象局API定义常量 - 为API请求设置正确的用户代理

  1. Helper函数

- make_nws_request():通过正确的错误处理来处理API请求 - format_alert():将天气警报格式化为可读文本

  1. MCP工具

实施了两个主要工具:

get_alerts(state):

- 获取美国某州的活跃天气警报 - 返回格式化的警报信息

b get_forecast(latitude, longitude):

- 检索某个位置的天气预报 - 返回详细的预测信息

  1. 服务器执行
   if __name__ == "__main__":
       mcp.run(transport="stdio")

- 使用stdio传输运行MCP服务器 - 启用与聊天客户端的通信

用法

  1. 创建一个 .env 使用您的OpenAI API密钥文件:
OPENAI_API_KEY=your_api_key_here
  1. 启动MCP服务器:
python weather.py
  1. 在单独的终端中,运行聊天客户端:
python client.py weather.py
  1. 与聊天界面交互:

- 提出一般性问题与人工智能聊天 - 使用与天气相关的查询来获取天气信息 - 例如:“加利福尼亚州的天气怎么样?”或“纽约有警报吗?”

与Cursor的代理模式一起使用

此MCP服务器可以直接与Cursor的代理模式集成(注意:这与Cursors的询问功能不同,仅在代理模式下工作)。以下是如何设置它:

将MCP服务器添加到游标

  1. 打开光标设置
  2. 引导到 Features > MCP
  3. 点击 + Add New MCP Server
  4. 填写表格:

- 类型:选择 stdio - 名字:“天气服务”(或您喜欢的任何名称) - 命令:输入运行天气服务器的完整路径:

     python /full/path/to/your/weather.py

备选方案:项目特定配置

您还可以通过创建一个 .cursor/mcp.json 文件:

  1. 创建 .cursor 项目根目录中的目录:
mkdir .cursor
  1. 创建 mcp.json 内容如下:
{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": [
        "/full/path/to/your/weather.py"
      ]
    }
  }
}

使用天气工具

  1. 打开光标编辑器(代理模式)
  2. 代理将自动检测何时需要天气信息
  3. 示例查询:

- “旧金山现在的天气怎么样?” - “加州有天气警报吗?” - “给我纽约市的天气预报”

重要提示

  • 工具仅在Cursor的代理模式(Composer)下可用,在询问模式下不可用
  • 默认情况下,Cursor在使用MCP工具之前会请求批准
  • 您可能需要单击MCP设置中的刷新按钮来查看新添加的工具
  • 服务器必须在本地计算机上运行(远程服务器需要SSE传输)

特性

  • 与OpenAI集成的实时聊天界面
  • MCP服务器集成,实现可扩展功能
  • 提供警报和预报的天气服务
  • 异步操作以获得更好的性能
  • 正确的错误处理和资源清理
  • API密钥的环境变量配置

贡献

请随时提交问题和增强请求!

目录标签

目录标签

位置天气PythonCursor终端应用本地部署聊天客户端MCP集成OpenAIAPI天气服务

支持客户端

Cursor

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP