Skip to main content

Spiral MCP Server

This is a Model Context Protocol (MCP) server implementation for the Spiral API using Python. It provides a standardized interface for interacting with Spiral's language models.

Installation

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

Setup

  1. Create and activate a virtual environment:
python3 -m venv venv
source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
  1. Install dependencies:
uv pip install -r requirements.txt
  1. Create a .env file in the root directory and add your Spiral API key:
SPIRAL_API_KEY=your_api_key_here

You can get your API key from https://app.spiral.computer/api

Running the Server

Start the server:

python src/server.py

The server will run on port 3000 by default. You can change this by setting the PORT environment variable.

Testing the Tools

To test the MCP tools directly:

python src/test_tools.py

This will run tests for all available tools to verify their functionality.

MCP Tools

The server implements four powerful MCP tools:

list_models

Lists all available Spiral models with their capabilities and metadata.

Example response:

{
    "models": [
        {
            "id": "model-id",
            "name": "model-name",
            "description": "Model description",
            "input_format": "text",
            "output_format": "text",
            "capabilities": {
                "completion": true
            }
        }
    ]
}

generate

Generates text using a specified Spiral model.

Parameters:

  • model: The ID or slug of the Spiral model to use
  • prompt: The input text to generate from

Example:

{
    "model": "model_id_or_slug",
    "prompt": "Your input text here"
}

generate_from_file

Generates text using a Spiral model with input from a file. This is useful for processing larger documents or maintaining consistent formatting.

Parameters:

  • model: The ID or slug of the Spiral model to use
  • file_path: Path to the file to use as input

Example:

{
    "model": "model_id_or_slug",
    "file_path": "path/to/your/input.txt"
}

generate_from_url

Generates text using a Spiral model with input from a URL. This tool can automatically extract article content from web pages.

Parameters:

  • model: The ID or slug of the Spiral model to use
  • url: URL to fetch content from
  • extract_article: Whether to extract article content or use full HTML (default: true)

Example:

{
    "model": "model_id_or_slug",
    "url": "https://example.com/article",
    "extract_article": true
}

Error Handling

The server handles various error cases including:

  • Invalid API key
  • Model not found
  • Input too long
  • Rate limit exceeded
  • URL fetch failures
  • File read errors
  • Server errors
  • Request timeouts

Each error returns a clear error message to help diagnose the issue.

Environment Variables

  • SPIRAL_API_KEY: Your Spiral API key (required)
  • PORT: Server port (optional, defaults to 3000)
  • TIMEOUT: Request timeout in seconds (optional, defaults to 30)

Features

  • Robust Error Handling: Comprehensive error handling and logging for all operations
  • Article Extraction: Smart extraction of article content from web pages
  • Flexible Input Sources: Support for text, files, and URLs as input
  • Async Operations: All operations are asynchronous for better performance
  • Type Safety: Full Pydantic type validation for all parameters
  • Logging: Detailed debug logging for troubleshooting

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_jxnl_spiral_mcp-0.1.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_jxnl_spiral_mcp-0.1.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_jxnl_spiral_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_jxnl_spiral_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_jxnl_spiral_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 09a64dad9feaa1f990dc889c4cc5cbc6390e7396019d5a44474fdcbed30c94db
MD5 5b6dbd959287fe3a891f332abf8781cc
BLAKE2b-256 a2b439fa58c82d65dcc1e4b1ca98123df89c4d5dcabdced538b571bb13833780

See more details on using hashes here.

File details

Details for the file iflow_mcp_jxnl_spiral_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_jxnl_spiral_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_jxnl_spiral_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6de6bd485581634734600d78ba49e03a7666f6604eabf0dc719f0ed9ad923553
MD5 c014f3f57c374bbbdcdbc02720323715
BLAKE2b-256 874e9232163b35a578f8693118f21d53b9ef2b6e5d9b8f31db6201acd6e78b14

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page