Tastytrade MCP Server
# 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
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly distinct and standalone.
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.
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.
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.