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设置
- 如果尚未安装,请安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh- 克隆或下载此仓库。
- 安装依赖项:
uv sync- 设置您的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 方法。
