AI工具服务器

一个基于DeepInfra OpenAI兼容API的AI工具服务器,提供图像生成、文本处理、嵌入、语音识别等多种AI功能。

  • by phuihock
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 phuihock/mcp-deeinfra

使用说明

MCP DeepInfra AI工具服务器

这是一个模型上下文协议(MCP)服务器,它使用DeepInfra的OpenAI兼容API提供各种人工智能功能,包括图像生成、文本处理、嵌入、语音识别等。

项目结构

mcp-deepinfra/
├── src/
│   └── mcp_deepinfra/
│       ├── __init__.py      # Package initialization
│       └── server.py        # Main MCP server implementation
├── tests/
│   ├── conftest.py          # Pytest fixtures and configuration
│   ├── test_server.py      # Server initialization tests
│   └── test_tools.py        # Individual tool tests
├── pyproject.toml           # Project configuration and dependencies
├── uv.lock                  # Lock file for uv package manager
├── run_tests.sh             # Convenience script for running tests
└── README.md               # This file

设置

  1. 如果尚未安装,请安装 uv:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. 克隆或下载此仓库。

  3. 安装依赖项:

    uv sync
    
  4. 设置您的DeepInfra API密钥: 创建一个 .env 项目根目录中的文件:

    DEEPINFRA_API_KEY=your_api_key_here
    

配置

你可以通过设置环境变量来配置启用哪些工具,并为每个工具设置默认模型 .env 文件:

  • ENABLED_TOOLS要启用的工具列表,以逗号分隔。使用“all”启用所有工具(默认值:“all”)。示例: ENABLED_TOOLS=generate_image,text_generation,embeddings

  • MODEL_GENERATE_IMAGE图像生成的默认模型(默认:“Bria/Bria-3.2”)

  • MODEL_TEXT_GENERATION文本生成的默认模型(默认:“meta-llama/Llama-2-7b-chat-hf”)

  • MODEL_EMBEDDINGS嵌入的默认模型(默认:“sentence-transformers/all-MiniLM-L6-v2”)

  • MODEL_SPEECH_RECOGNITION语音识别的默认模型(默认:“openai/whisper-large-v3”)

  • MODEL_ZERO_SHOT_IMAGE_CLASSIFICATION零样本图像分类的默认模型(默认:“openai/gpt-4o-mini”)

  • MODEL_OBJECT_DETECTION目标检测的默认模型(默认:“openai/gpt-4o-mini”)

  • MODEL_IMAGE_CLASSIFICATION图像分类的默认模型(默认:“openai/gpt-4o-mini”)

  • MODEL_TEXT_CLASSIFICATION文本分类的默认模型(默认:“microsoft/DialoGPT-medium”)

  • MODEL_TOKEN_CLASSIFICATION用于标记分类的默认模型(默认:“microsoft/DialoGPT-medium”)

  • MODEL_FILL_MASK填充掩码的默认模型(默认值:“microsoft/DialoGPT-medium”)

工具总是使用通过环境变量指定的模型。模型的选择在启动时通过上述列出的环境变量进行配置。

运行服务器

要在本地运行服务器:

uv run mcp_deepinfra

或者直接使用Python:

python -m mcp_deepinfra.server

与MCP客户端一起使用

将您的MCP客户端(例如,Claude Desktop)配置为使用此服务器。

对于Claude Desktop,请添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "deepinfra": {
      "command": "uv",
      "args": ["run", "mcp_deepinfra"],
      "env": {
        "DEEPINFRA_API_KEY": "your_api_key_here"
      }
    }
  }
}

提供的工具

此服务器提供以下MCP工具:

  • generate_image根据文本提示生成一张图片。返回生成图片的URL。
  • text_generation根据提示生成文本补全。
  • embeddings为一组输入文本生成嵌入表示。
  • speech_recognition使用Whisper模型将URL中的音频转录为文本。
  • zero_shot_image_classification使用视觉模型将图像分类到给定的候选标签中。
  • object_detection使用多模态模型检测并描述图像中的对象。
  • image_classification使用多模态模型对图像内容进行分类和描述。
  • text_classification分析文本的情感和类别。
  • token_classification对文本执行命名实体识别(NER)。
  • fill_mask用合适的词语填充文本中的遮蔽标记。

测试

要在本地测试服务器,请运行 pytest 测试套件:

# Install test dependencies
uv sync --extra test

# Run all tests
pytest

# Run with verbose output
pytest -v

# Run specific test file
pytest tests/test_tools.py

# Use the convenience script
./run_tests.sh

测试内容包括:

  • 服务器初始化和工具列表
  • 通过JSON-RPC协议进行单个工具的功能测试
  • 所有测试同步运行,无需处理异步/await的复杂性

与uvx一起奔跑

uvx 设计用于运行从PyPI或GitHub发布的Python包。对于本地开发,请使用 uv run 如上文所述的命令。

如果你将这个包发布到PyPI(例如,作为 mcp-deepinfra), 你可以通过以下方式运行它:

uvx mcp-deepinfra

并配置您的MCP客户端以使用:

{
  "mcpServers": {
    "deepinfra": {
      "command": "uvx",
      "args": ["mcp-deepinfra"],
      "env": {
        "DEEPINFRA_API_KEY": "your_api_key_here"
      }
    }
  }
}

对于本地开发,建议使用 uv run 方法。