螺旋MCP服务器
这是一个使用Python的Spiral API的模型上下文协议(MCP)服务器实现。它为与Spiral的语言模型交互提供了一个标准化的界面。
安装
mcp install src/server.py --name "spiral-writing-tool" --with pydantic --with requests --with beautifulsoup4 --with httpx设置
- 创建并激活虚拟环境:
python3 -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`- 安装依赖项:
uv pip install -r requirements.txt- 创建一个
.env文件,并添加Spiral API密钥:
SPIRAL_API_KEY=your_api_key_here您可以从获取API密钥https://app.spiral.computer/api
运行服务器
启动服务器:
python src/server.py默认情况下,服务器将在端口3000上运行。您可以通过设置 PORT 环境变量。
测试工具
要直接测试MCP工具:
python src/test_tools.py这将对所有可用工具进行测试,以验证其功能。
MCP工具
服务器实现了四个强大的MCP工具:
list_models
列出所有可用的螺旋模型及其功能和元数据。
示例响应:
{
"models": [
{
"id": "model-id",
"name": "model-name",
"description": "Model description",
"input_format": "text",
"output_format": "text",
"capabilities": {
"completion": true
}
}
]
}生成
使用指定的螺旋模型生成文本。
参数:
model:要使用的螺旋模型的ID或段塞prompt:要生成的输入文本
例子:
{
"model": "model_id_or_slug",
"prompt": "Your input text here"
}generate_from_file
使用带有文件输入的螺旋模型生成文本。这对于处理较大的文档或保持一致的格式非常有用。
参数:
model:要使用的螺旋模型的ID或段塞file_path:用作输入的文件的路径
例子:
{
"model": "model_id_or_slug",
"file_path": "path/to/your/input.txt"
}generate_from_url
使用带有URL输入的螺旋模型生成文本。此工具可以自动从网页中提取文章内容。
参数:
model:要使用的螺旋模型的ID或段塞url:从中获取内容的URLextract_article:是提取文章内容还是使用完整的HTML(默认值:true)
例子:
{
"model": "model_id_or_slug",
"url": "https://example.com/article",
"extract_article": true
}错误处理
服务器处理各种错误情况,包括:
- API密钥无效
- 未找到型号
- 输入太长
- 请求频率超限
- URL获取失败
- 文件读取错误
- 服务器错误
- 请求超时
每个错误都会返回一条明确的错误消息,以帮助诊断问题。
环境变量
SPIRAL_API_KEY:螺旋API密钥(必需)PORT:服务器端口(可选,默认为3000)TIMEOUT:请求超时(秒)(可选,默认为30)
特性
- 稳健的错误处理:对所有操作进行全面的错误处理和记录
- 文章摘录:从网页中智能提取文章内容
- 灵活的输入源:支持文本、文件和URL作为输入
- 异步操作:所有操作都是异步的,以获得更好的性能
- 类型安全:对所有参数进行完整的Pydantic类型验证
- 日志记录:用于故障排除的详细调试日志记录
