Skip to main content

基于SSE传输的MCP时间服务器,提供多时区时间查询功能

Project description

LangGraph MCP Tools 🤖

一个基于LangGraph和MCP(Model Context Protocol)的智能工具集成平台,支持自定义接入和使用各种MCP工具的ReAct代理。

📦 MCP时间服务器打包

本项目包含一个可独立打包发布的MCP时间服务器,支持多时区时间查询功能。

Python Streamlit LangGraph License

✨ 功能特性

  • 🎯 智能代理: 基于DeepSeek V3模型的ReAct代理,具备强大的推理和工具调用能力
  • 🔧 MCP工具集成: 支持多种MCP工具服务器,包括GitHub、文件系统、Shell、浏览器自动化等
  • 🗺️ 地理服务: 集成高德地图API,提供地理编码、路径规划、天气查询等功能
  • 时间服务: 支持多时区时间查询和格式化
  • 🌐 Web界面: 基于Streamlit的现代化用户界面,支持实时对话和工具调用可视化
  • 🔌 可扩展: 支持动态添加和管理MCP工具服务器
  • 🔒 安全: 采用环境变量管理敏感信息,确保API密钥安全

🛠️ 支持的MCP工具

官方工具

  • GitHub: 仓库管理、问题跟踪、PR创建和代码协作
  • 文件系统: 文件读写、目录操作和文件管理功能
  • Shell: 安全的系统命令执行和脚本运行
  • 浏览器自动化: 网页操作、截图、点击和表单填写
  • 序列思维: 动态反思式问题解决和结构化思考

自定义工具

  • 高德地图服务: 地理编码、逆地理编码、POI搜索、天气查询、路径规划
  • 时间服务: 多时区时间获取和格式化

🚀 快速开始

环境要求

  • Python 3.8+
  • pip 或 uv (推荐)

安装步骤

  1. 克隆项目
git clone https://github.com/your-username/MCP-LangGraph-Agent.git
cd MCP-LangGraph-Agent
  1. 安装依赖
# 使用 uv (推荐)
uv sync

# 或使用 pip
pip install -r requirements.txt
  1. 配置环境变量
# 复制环境变量模板
cp .env.example .env

# 编辑 .env 文件,填入您的API密钥
nano .env

环境变量配置示例:

# DeepSeek API密钥 (必需)
DEEPSEEK_API_KEY=your_deepseek_api_key_here

# 高德地图API密钥 (可选,如果使用地图功能)
AMAP_API_KEY=your_amap_api_key_here

# GitHub Personal Access Token (可选,如果使用GitHub工具)
GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token_here
  1. 启动应用
streamlit run app.py
  1. 访问应用 打开浏览器访问 http://localhost:8501

📦 MCP时间服务器打包使用

自动化打包

使用提供的自动化脚本进行打包:

# 运行自动化打包脚本
python build_package.py

脚本会自动执行以下步骤:

  1. 清理之前的构建文件
  2. 安装构建工具 (uv pip install build twine)
  3. 构建Python包 (python -m build)
  4. 可选择上传到PyPI (python -m twine upload dist/*)

手动打包

如果需要手动控制打包过程:

# 1. 安装构建工具
uv pip install build twine

# 2. 构建包
python -m build

# 3. 上传到PyPI (可选)
python -m twine upload dist/*

# 4. 上传到测试PyPI (可选)
python -m twine upload --repository testpypi dist/*

安装和使用打包后的服务器

# 从本地安装
pip install dist/mcp-time-server-1.0.0-py3-none-any.whl

# 或从PyPI安装 (发布后)
pip install mcp-time-server

# 使用命令行运行
mcp-time-server              # stdio模式 (默认)
mcp-time-server --sse        # SSE模式

# 或作为Python模块运行
python -m mcp_time_server.time_server
python -m mcp_time_server.time_server --sse

包结构

mcp_time_server/
├── __init__.py          # 包初始化文件
├── time_server.py       # 主要服务器代码
setup.py                 # setuptools配置 (兼容性)
pyproject.toml           # 现代Python包配置
MANIFEST.in              # 包含文件清单
LICENSE                  # MIT许可证
build_package.py         # 自动化打包脚本
.pypirc.example         # PyPI配置示例

📖 使用指南

基本使用

  1. 启动应用后,您会看到一个现代化的聊天界面
  2. 在侧边栏可以查看和管理已配置的MCP工具
  3. 在聊天框中输入您的问题,AI代理会自动选择合适的工具来回答
  4. 工具调用过程会实时显示,包括工具选择和执行结果

添加MCP工具

  1. 点击侧边栏的 "添加MCP工具"
  2. 输入工具配置的JSON格式:
{
  "tool_name": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-example"],
    "transport": "stdio"
  }
}
  1. 点击 "添加工具"
  2. 点击 "应用设置" 重新加载工具

示例对话

  • 🗺️ "帮我查询北京到上海的驾车路线"
  • 📁 "列出当前目录的所有文件"
  • 🌤️ "今天北京的天气怎么样?"
  • ⏰ "现在东京时间是几点?"
  • 💻 "帮我在GitHub上创建一个新的仓库"

🏗️ 项目结构

MCP-LangGraph-Agent/
├── app.py                 # 主应用文件
├── config.json           # MCP工具配置
├── utils.py              # 工具函数
├── mcp_server_amap.py    # 高德地图MCP服务器
├── mcp_server_time.py    # 时间服务MCP服务器
├── requirements.txt      # Python依赖
├── .env.example         # 环境变量模板
├── .gitignore           # Git忽略文件
└── README.md            # 项目说明

🔧 配置说明

MCP工具配置

工具配置存储在 config.json 文件中,支持两种类型的MCP服务器:

  1. 本地脚本类型:
{
  "tool_name": {
    "command": "python",
    "args": ["./your_script.py"],
    "transport": "stdio"
  }
}
  1. NPX包类型:
{
  "tool_name": {
    "command": "npx",
    "args": ["-y", "@org/package-name"],
    "transport": "stdio"
  }
}

环境变量

变量名 描述 必需
DEEPSEEK_API_KEY DeepSeek API密钥,用于AI对话
AMAP_API_KEY 高德地图API密钥,用于地理服务
GITHUB_PERSONAL_ACCESS_TOKEN GitHub访问令牌,用于GitHub工具

🤝 贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 这个仓库
  2. 创建您的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

📝 开发说明

添加新的MCP工具

  1. 创建新的MCP服务器脚本
  2. config.json 中添加配置
  3. 重启应用或点击"应用设置"

自定义UI

  • 修改 app.py 中的CSS样式
  • 调整Streamlit组件布局
  • 添加新的交互功能

🐛 问题排查

常见问题

  1. 工具调用失败

    • 检查环境变量是否正确配置
    • 确认MCP服务器是否正常运行
    • 查看控制台错误日志
  2. API密钥错误

    • 验证 .env 文件中的API密钥格式
    • 确认API密钥有效且有足够权限
  3. 依赖安装问题

    • 使用 uv 而不是 pip 安装依赖
    • 确保Python版本兼容性

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢


⭐ 如果这个项目对您有帮助,请给它一个星星!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastmcp_time_service-1.1.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastmcp_time_service-1.1.0-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file fastmcp_time_service-1.1.0.tar.gz.

File metadata

  • Download URL: fastmcp_time_service-1.1.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for fastmcp_time_service-1.1.0.tar.gz
Algorithm Hash digest
SHA256 39ddf8107ba29bf25b38c1a2462f32b38878190acfe5fa02f874d38838c6e51a
MD5 5e81d3ff83b6bd189bb35b1b09cad441
BLAKE2b-256 cf975ef171d8ac027c4c3d259f8d9a32e20b7e45cd3aa3a99c4765b31b294d56

See more details on using hashes here.

File details

Details for the file fastmcp_time_service-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fastmcp_time_service-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd7a23d639842293823af88ce061d7888d9ac5255e6507e7fd4fd18c0a19689a
MD5 aedb0eed6b1b0e73a9dae6a0e6924198
BLAKE2b-256 d5e4f624a7289a7d4555de0c23b4d0e7bf616add6abbc7768ad7dcefae485456

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page