Skip to main content
Glama
tnngnc

Tastytrade MCP Server

by tnngnc
README.md
# Tastytrade MCP Server

A server that provides access to Tastytrade historical price data via the Model Context Protocol (MCP).

## Prerequisites

- Tastytrade credentials (Client Secret, Refresh Token)
- [uv](https://github.com/astral-sh/uv) (Python package manager)

## Installation

This project uses `uv` to manage dependencies and ensure a consistent environment for all users.

1. Clone the repository and navigate to the directory.
2. Install the dependencies:

   ```bash
   uv sync
   ```
   This will create a `.venv` directory with the exact versions specified in `uv.lock`.

## Configuration

It is **not recommended** to store credentials directly in your MCP client configuration file. Instead, this server is configured to load them automatically from the `.env` file located in the same directory as the script.

1. Ensure you have created your `.env` file with your credentials:
   ```bash
   cp .env.example .env
   # Edit .env with your actual details
   ```

2. Configure your MCP client (e.g., `claude_desktop_config.json`) with the command to run the server.

```json
{
  "mcpServers": {
    "tastytrade": {
      "command": "/home/username/.pyenv/versions/data/bin/python",
      "args": [
        "/home/username/Desktop/projects/mcp_tasty/tastytrade_server.py"
      ]
    }
  }
}
```

*Note: Since dependencies are now managed by the project, point the `command` to the `.venv` python if you want to use the lockfile environment, or just use `uv` as the command.*

**Recommended Configuration (using uv):**

```json
{
  "mcpServers": {
    "tastytrade": {
      "command": "uv",
      "args": [
        "run",
        "/home/username/Desktop/projects/mcp_tasty/tastytrade_server.py"
      ]
    }
  }
}
```

## Available Tools

- `get_price_history(symbol, days=7, interval='1d')`: Get historical candle data for a symbol (e.g., "SPY").

## Testing

To run the test client using the project environment:

```bash
uv run test_client.py
```

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly distinct and standalone.

Naming Consistency5/5

The single tool name follows a clear verb_noun pattern (get_price_history), and with only one tool, consistency is inherently perfect as there are no other tools to compare against.

Tool Count2/5

A single tool is too few for a server named 'Tastytrade MCP Server', which implies a broader financial or trading domain. This minimal toolset feels thin and under-scoped for such a purpose.

Completeness1/5

The server is severely incomplete for its implied domain. It only provides historical price data, with no tools for account management, order placement, real-time quotes, or other core trading functionalities, leading to significant gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues