AI模型协议服务

Model Context Protocol (MCP) 是一个开放的协议,使AI模型能够安全地与外部工具和资源交互,扩展AI功能。

  • by frANTicBee666
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 frANTicBee666/ai_mcp

使用说明

MCP(模型上下文协议)

该项目演示了如何使用模型上下文协议(Model Context Protocol),这是一种将AI模型与外部工具和资源交互的协议。

什么是MCP?

Model Context Protocol(MCP)是Anthropic开发的一种开放协议,允许AI模型安全地与外部工具、API和资源通信。MCP提供了一种标准化的方法来扩展AI模型的功能。

MCP架构

MCP由三个主要组成部分组成:

  1. MCP客户端 -想要使用工具的AI模型或应用程序
  2. MCP服务器 -提供工具和资源访问的服务器
  3. MCP传输 -客户端和服务器之间的通信机制(STDIO、HTTP、WebSocket等)

项目结构

├── mcp_server.js        # MCP сервер с инструментами (калькулятор, погода)
├── mcp_client.js         # MCP клиент для тестирования
├── weather_agent.js      # ИИ агент для мониторинга погоды
├── env.example           # Пример конфигурации агента
├── package.json          # Зависимости и скрипты
└── README.md             # Документация

发射

建立依赖关系

npm install

启动演示(客户端+服务器)

npm start

仅运行服务器

npm run server

启动天气代理

npm run agent

要使代理运行,必须配置环境变量(请参阅env.example)

独立启动组件

默认情况下,代理自动启动MCP服务器。但是,您可以独立运行它们:

选项1:自动启动(默认)

# Агент сам запустит MCP сервер
npm run agent

备选办法2:独立发射

# В первом терминале запускаем MCP сервер
npm run server

# Во втором терминале запускаем агента (с WEATHER_AGENT_SPAWN_MCP=false)
WEATHER_AGENT_SPAWN_MCP=false npm run agent

这使得:

  • 停止代理而不停止MCP服务器
  • 将多个代理连接到一个MCP服务器
  • 将MCP服务器用于其他目的

代码中发生了什么

MCP服务器(MCP_Server.js)

  • 使用三个工具创建MCP服务器:
    • calculator_add -数字加法
    • calculator_multiply -数字乘法
    • get_weather -获取天气
  • 处理请求 tools/list 和 tools/call

MCP客户端(MCP_Client.js)

  • 启动MCP服务器作为子进程
  • 通过STDIO传输连接到服务器
  • 获取可用工具列表
  • 测试工具

天气代理(Weather_Agent.js)

  • 支持不同LLM的天气监控AI代理
  • 支持的提供商:YandexGPT(默认)、Claude、OpenAI
  • 自动启动MCP服务器获取天气数据
  • 每30分钟检查一次天气,并显示对控制台的更改
  • 使用LLM分析天气变化

执行结果

Запуск MCP сервера...
Подключение к MCP серверу...
✅ Подключение к MCP серверу установлено
Получение списка инструментов...
📋 Доступные инструменты:
========================
1. calculator_add
   Описание: Складывает два числа
   Параметры: {
     "a": {
       "type": "number"
     },
     "b": {
       "type": "number"
     }
   }

2. calculator_multiply
   Описание: Умножает два числа
   Параметры: {
     "a": {
       "type": "number"
     },
     "b": {
       "type": "number"
     }
   }

3. get_weather
   Описание: Получает погоду для указанного города
   Параметры: {
     "city": {
       "type": "string"
     }
   }

Тестирование инструментов:
🧪 Тестирование инструмента: calculator_add
✅ Результат: Результат: 15
🧪 Тестирование инструмента: calculator_multiply
✅ Результат: Результат: 42
🧪 Тестирование инструмента: get_weather
✅ Результат: Погода в Москва: солнечно, +25°C

安装和使用Weather Agent

配置

  1. 复制配置示例:
cp env.example .env
  1. 在.env文件中配置环境变量:
# Город для мониторинга
WEATHER_AGENT_CITY=Москва

# Интервал проверки (в миллисекундах, 30 минут = 1800000)
WEATHER_AGENT_INTERVAL=1800000

# Выбор LLM провайдера (yandexgpt/claude/openai)
WEATHER_AGENT_LLM=yandexgpt

# Режим работы MCP сервера
# true - агент запускает MCP сервер автоматически (по умолчанию)
# false - агент подключается к уже запущенному MCP серверу
WEATHER_AGENT_SPAWN_MCP=true

# Ключи API для выбранного провайдера
YANDEX_API_KEY=your_yandex_api_key
YANDEX_FOLDER_ID=your_yandex_folder_id
# или
CLAUDE_API_KEY=your_claude_api_key
# или
OPENAI_API_KEY=your_openai_api_key

启动代理

# Загрузите переменные окружения
source .env

# Запустите агента
npm run agent

工作特点

  • 组件独立性: MCP服务器和代理可以一起或单独工作
  • 灵活启动: 自动启动MCP服务器或连接到现有服务器
  • 多代理: 一个MCP服务器可以同时为多个代理提供服务
  • LLM分析: 当天气变化时,代理使用选定的LLM进行分析
  • 灵活配置: 所有设置都通过环境变量配置

MCP的关键概念

1.工具(tools)

工具是AI可以调用的功能。每个工具都有:

  • 名称
  • 描述(description)
  • 输入参数图(Inputschema)

2.运输(Transport)

MCP支持多种传输方式:

  • 工作室 -通过标准I/O流(非常适合本地工具)
  • HTTP/WebSocket -用于网络连接
  • 流式HTTP -用于数据流

3.来文

MCP使用JSON-RPC 2.0进行通信:

  • 请求: tools/list, tools/call, resources/list 等等。D.其他事项
  • 答案:结构化的结果数据

去哪里玩MCP

📚 正式文件

🔧 销售

  • python: pip install mcp
  • Node.js: npm install @modelcontextprotocol/sdk
  • 去:正式实现

🚀 使用示例

  • 克劳德桌面版 支持MCP以增强功能
  • AI-IDE -与各种开发工具集成
  • 自动化 -连接到API、数据库、文件系统

🎯 下一步学习

  1. 查看规格 了解JSON-RPC消息格式
  2. 尝试不同的交通工具 -HTTP、WebSocket
  3. 创建您的服务器 实现与真实API的集成
  4. 查看现有服务器 GitHub,Slack,文件系统
  5. 与AI集成 -连接到Claude、GPT或其他型号

🌟 高级主题

  • 资源(Resources) -访问文件、数据库
  • Prompts(Prompts) -动态系统应用程序
  • 采样(Sampling) -定制AI响应
  • 安全 -限制和沙盒

MCP为创建强大的AI应用程序提供了新的可能性,可以访问外部资源!