Connect an External Assistant
Use this guide when you want your own assistant, such as Codex, Claude, Cursor, Windsurf, VS Code, Gemini CLI, or another MCP-compatible client, to work with your TheoryCraft account.
Before You Start
Open the TheoryCraft workspace you want the assistant to use, then go to Settings -> Developer.
Copy the MCP endpoint shown there. The examples below use:
https://beta.theorycraft-trading.ai/mcp
If your settings page shows a different endpoint, use the one from your settings page instead.
If you want the assistant to interact with your current TheoryCraft session, keep TheoryCraft open in your browser.
Choose Access
TheoryCraft supports two connection methods:
| Method | Best for |
|---|---|
| Sign in with TheoryCraft | Clients that open a browser login flow, such as Claude.ai connectors or Codex OAuth login. |
| Personal token | Clients that ask you to paste a token or read one from an environment variable. |
When creating a personal token, choose the smallest access level that fits your use:
| Access | Allows |
|---|---|
| Read only | The assistant can read information from your TheoryCraft account. |
| Read/write | The assistant can also perform actions in TheoryCraft when you ask it to. |
Install TheoryCraft Skills
Install the TheoryCraft skills bundle so your assistant understands TheoryCraft workflows and terminology. Install it once for each client or machine where you use the assistant.
Bundle URL:
https://beta.theorycraft-trading.ai/mcp/skills/theorycraft-skills.zip
Codex
macOS and Linux:
mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills"
curl -fsSL https://beta.theorycraft-trading.ai/mcp/skills/theorycraft-skills.zip -o /tmp/tc-skills.zip
unzip -o /tmp/tc-skills.zip -d "${CODEX_HOME:-$HOME/.codex}/skills"
rm -f /tmp/tc-skills.zip
Windows PowerShell:
$dest = "$env:USERPROFILE\.codex\skills"
New-Item -ItemType Directory -Force $dest
Invoke-WebRequest "https://beta.theorycraft-trading.ai/mcp/skills/theorycraft-skills.zip" -OutFile "$env:TEMP\tc-skills.zip"
Expand-Archive -Force "$env:TEMP\tc-skills.zip" $dest
Remove-Item -Force "$env:TEMP\tc-skills.zip"
Claude Code
Claude Code supports personal skills in ~/.claude/skills and project skills
in .claude/skills. Use personal skills when you want TheoryCraft available in
every project.
macOS and Linux:
mkdir -p "$HOME/.claude/skills"
curl -fsSL https://beta.theorycraft-trading.ai/mcp/skills/theorycraft-skills.zip -o /tmp/tc-skills.zip
unzip -o /tmp/tc-skills.zip -d "$HOME/.claude/skills"
rm -f /tmp/tc-skills.zip
Windows PowerShell:
$dest = "$env:USERPROFILE\.claude\skills"
New-Item -ItemType Directory -Force $dest
Invoke-WebRequest "https://beta.theorycraft-trading.ai/mcp/skills/theorycraft-skills.zip" -OutFile "$env:TEMP\tc-skills.zip"
Expand-Archive -Force "$env:TEMP\tc-skills.zip" $dest
Remove-Item -Force "$env:TEMP\tc-skills.zip"
For project-scoped skills, extract the ZIP into .claude/skills in the project
root instead. If Claude Code was already running and the skills directory did
not exist yet, restart Claude Code; otherwise it detects changes automatically.
Reference: Claude Code skills.
Claude.ai Skills
Claude.ai manages skills from the Claude settings UI. The TheoryCraft bundle
contains multiple skill folders, while Claude.ai uploads expect one skill folder
per ZIP. To use the same skills there, download the bundle, extract it, create a
separate ZIP for each theorycraft-* folder, then upload those ZIPs from
Claude's Skills settings.
If you only need Claude.ai to call TheoryCraft tools, skip the skill upload and use the Claude.ai connector setup below.
Reference: Claude.ai custom skills.
Gemini CLI
Gemini CLI supports Agent Skills in ~/.gemini/skills for user-wide use and
.gemini/skills for project-local use.
macOS and Linux:
mkdir -p "$HOME/.gemini/skills"
curl -fsSL https://beta.theorycraft-trading.ai/mcp/skills/theorycraft-skills.zip -o /tmp/tc-skills.zip
unzip -o /tmp/tc-skills.zip -d "$HOME/.gemini/skills"
rm -f /tmp/tc-skills.zip
gemini skills list
Windows PowerShell:
$dest = "$env:USERPROFILE\.gemini\skills"
New-Item -ItemType Directory -Force $dest
Invoke-WebRequest "https://beta.theorycraft-trading.ai/mcp/skills/theorycraft-skills.zip" -OutFile "$env:TEMP\tc-skills.zip"
Expand-Archive -Force "$env:TEMP\tc-skills.zip" $dest
Remove-Item -Force "$env:TEMP\tc-skills.zip"
gemini skills list
Inside an active Gemini CLI session, run /skills reload after installing or
updating the bundle.
Reference: Gemini CLI skills commands.
Cursor, Windsurf, VS Code, Continue, and Other Clients
Not every MCP client has a local SKILL.md system. Cursor, Windsurf, VS Code,
and Continue primarily document MCP server configuration, so connect them to the
TheoryCraft MCP endpoint and let the tool descriptions guide the assistant. If
your client later adds first-class SKILL.md support, extract the ZIP into that
client's documented skills directory.
Connect Your Client
Codex
Codex with Browser Sign-In
export TC_MCP_URL="https://beta.theorycraft-trading.ai/mcp"
codex mcp add theorycraft --url "$TC_MCP_URL" --oauth-resource "$TC_MCP_URL"
codex mcp login theorycraft --scopes mcp:read,mcp:write
Codex with a Personal Token
Create a personal token in Settings -> Developer, then store it in an environment variable.
macOS and Linux:
export TC_MCP_URL="https://beta.theorycraft-trading.ai/mcp"
export THEORYCRAFT_MCP_TOKEN="paste-your-token"
codex mcp add theorycraft --url "$TC_MCP_URL" --bearer-token-env-var THEORYCRAFT_MCP_TOKEN
Windows PowerShell:
$env:TC_MCP_URL = "https://beta.theorycraft-trading.ai/mcp"
setx THEORYCRAFT_MCP_TOKEN "paste-your-token"
codex mcp add theorycraft --url $env:TC_MCP_URL --bearer-token-env-var THEORYCRAFT_MCP_TOKEN
Restart the terminal after setx so the new environment variable is available.
Claude Code
Claude Code with Browser Sign-In
Add the remote HTTP MCP server, then run /mcp inside Claude Code to complete
the browser login flow.
export TC_MCP_URL="https://beta.theorycraft-trading.ai/mcp"
claude mcp add --transport http --scope user theorycraft "$TC_MCP_URL"
claude
In Claude Code:
/mcp
Claude Code with a Personal Token
Create a personal token in Settings -> Developer, then pass it as an HTTP
authorization header.
export THEORYCRAFT_MCP_TOKEN="paste-your-token"
claude mcp add --transport http --scope user \
--header "Authorization: Bearer $THEORYCRAFT_MCP_TOKEN" \
theorycraft "https://beta.theorycraft-trading.ai/mcp"
Gemini CLI
Gemini CLI with Browser Sign-In
Add TheoryCraft as a user-scoped HTTP MCP server. Gemini CLI opens the browser authentication flow when the server asks for OAuth.
export TC_MCP_URL="https://beta.theorycraft-trading.ai/mcp"
gemini mcp add --transport http --scope user theorycraft "$TC_MCP_URL"
gemini mcp list
Gemini CLI with a Personal Token
Create a personal token in Settings -> Developer, then pass it as an HTTP
authorization header.
export TC_MCP_URL="https://beta.theorycraft-trading.ai/mcp"
export THEORYCRAFT_MCP_TOKEN="paste-your-token"
gemini mcp add --transport http --scope user \
--header "Authorization: Bearer $THEORYCRAFT_MCP_TOKEN" \
theorycraft "$TC_MCP_URL"
Claude.ai Connector
Create a custom connector and choose browser sign-in.
Use these values when Claude asks for them:
MCP server URL: <the MCP endpoint shown in Settings -> Developer>
Resource URL: <the same MCP endpoint>
Permissions: read/write if you want Claude to perform actions in TheoryCraft, otherwise read only
Cursor
Add TheoryCraft to .cursor/mcp.json for a project, or to your user MCP
configuration if you want it available everywhere.
{
"mcpServers": {
"theorycraft": {
"type": "http",
"url": "https://beta.theorycraft-trading.ai/mcp",
"headers": {
"Authorization": "Bearer ${env:THEORYCRAFT_MCP_TOKEN}"
}
}
}
}
Reference: Cursor MCP configuration.
Windsurf
Open Windsurf's Cascade MCP raw config and add a remote HTTP server. Windsurf
uses serverUrl for remote HTTP MCP entries.
{
"mcpServers": {
"theorycraft": {
"serverUrl": "https://beta.theorycraft-trading.ai/mcp",
"headers": {
"Authorization": "Bearer ${env:THEORYCRAFT_MCP_TOKEN}"
}
}
}
}
Reference: Windsurf Cascade MCP.
VS Code
Use the command palette entry MCP: Open User Configuration or create
.vscode/mcp.json in a workspace. VS Code uses a top-level servers object,
not mcpServers.
{
"inputs": [
{
"type": "promptString",
"id": "theorycraft-token",
"description": "TheoryCraft MCP token",
"password": true
}
],
"servers": {
"theorycraft": {
"type": "http",
"url": "https://beta.theorycraft-trading.ai/mcp",
"headers": {
"Authorization": "Bearer ${input:theorycraft-token}"
}
}
}
}
Reference: VS Code MCP configuration.
Continue and Other JSON MCP Clients
Use the remote MCP or HTTP MCP setup supported by your client. The labels vary by product, but the values are:
Name: theorycraft
URL: <the MCP endpoint shown in Settings -> Developer>
Sign-in method: browser sign-in, or personal token
Resource URL, if asked: <the same MCP endpoint>
If your client asks for a JSON configuration and supports environment variables, use:
{
"mcpServers": {
"theorycraft": {
"type": "http",
"url": "https://beta.theorycraft-trading.ai/mcp",
"headers": {
"Authorization": "Bearer ${THEORYCRAFT_MCP_TOKEN}"
}
}
}
}
For browser sign-in, leave out the headers block and use the sign-in fields shown by your client.
Keep Access Safe
- Create a separate token for each client.
- Prefer read-only access unless you want the assistant to perform actions in TheoryCraft.
- Add an expiration date for temporary devices.
- Revoke unused tokens from
Settings -> Developer. - Never paste a personal token into a shared repository, issue, chat transcript, or prompt library.