语言模型接口服务器

Spiral MCP Server 是一个基于 Python 的模型上下文协议服务器,提供与 Spiral 语言模型交互的标准化接口,支持文本生成、文件处理和网页内容提取等功能。

  • by jxnl
  • Python
  • 本地部署
  • 16 星标
  • 更新于
在 GitHub 查看 jxnl/spiral-mcp

使用说明

螺旋MCP服务器

这是一个使用Python的Spiral API的模型上下文协议(MCP)服务器实现。它为与Spiral的语言模型交互提供了一个标准化的界面。

安装

mcp install src/server.py --name "spiral-writing-tool" --with pydantic --with requests --with beautifulsoup4 --with httpx

设置

  1. 创建并激活虚拟环境:
python3 -m venv venv
source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
  1. 安装依赖项:
uv pip install -r requirements.txt
  1. 创建一个 .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:从中获取内容的URL
  • extract_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类型验证
  • 日志记录:用于故障排除的详细调试日志记录