Skip to main content
Get Started
Documentation

Tractorscope MCP server: build dashboards and query data from your AI tools

Tractorscope has a hosted Model Context Protocol server. Connect it to an AI client and the client can read your dashboards, query the databases you have connected, create and edit charts, set up filters and alerts, and pull chart data, all against your own account and only what your user can see.
The server lives at:
https://api.tractorscope.com/mcp
There is nothing to install or host. It uses streamable HTTP and OAuth, so any client that supports remote MCP servers can connect with the URL alone and sign in through the browser.

Connecting a client

Every client below opens a browser window the first time it connects. Sign in to Tractorscope, choose what the connection may do, and approve it. The client keeps its own token from then on.

Claude Desktop and claude.ai

Go to Settings → Connectors → Add custom connector, name it Tractorscope, and give it the URL above. Claude handles the sign-in itself.

Claude Code

claude mcp add --transport http tractorscope https://api.tractorscope.com/mcp
claude mcp list
claude mcp add --transport http tractorscope https://api.tractorscope.com/mcp
claude mcp list

Codex

codex mcp add tractorscope --url "https://api.tractorscope.com/mcp"
codex mcp login tractorscope
codex mcp add tractorscope --url "https://api.tractorscope.com/mcp"
codex mcp login tractorscope

Cursor

Add this to
~/.cursor/mcp.json
. Cursor prompts for the sign-in the first time it connects.
{
  "mcpServers": {
    "tractorscope": { "url": "https://api.tractorscope.com/mcp" }
  }
}
{
  "mcpServers": {
    "tractorscope": { "url": "https://api.tractorscope.com/mcp" }
  }
}

VS Code

Add this to
.vscode/mcp.json
, or run MCP: Open User Configuration to use it everywhere.
{
  "servers": {
    "tractorscope": { "type": "http", "url": "https://api.tractorscope.com/mcp" }
  }
}
{
  "servers": {
    "tractorscope": { "type": "http", "url": "https://api.tractorscope.com/mcp" }
  }
}

Gemini CLI

Add this to
~/.gemini/settings.json
.
{
  "mcpServers": {
    "tractorscope": {
      "httpUrl": "https://api.tractorscope.com/mcp",
      "oauth": { "enabled": true }
    }
  }
}
{
  "mcpServers": {
    "tractorscope": {
      "httpUrl": "https://api.tractorscope.com/mcp",
      "oauth": { "enabled": true }
    }
  }
}

opencode

Add this to
opencode.json
, or to
~/.config/opencode/opencode.json
for all projects.
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tractorscope": { "type": "remote", "url": "https://api.tractorscope.com/mcp", "enabled": true }
  }
}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tractorscope": { "type": "remote", "url": "https://api.tractorscope.com/mcp", "enabled": true }
  }
}

Signing in and choosing what a connection may do

The sign-in is standard OAuth 2.1 with PKCE. Clients register themselves, so there is no client ID or secret to copy. On the consent screen you choose one of two levels for the connection:
  • Read lets the client list and open dashboards, charts, filters and alerts, read chart data, and run read-only queries.
  • Read and write also lets it create and change things: charts, dashboards, folders, filters, alerts and embedding domains.
A read connection that tries a write tool is refused with a message saying which tool it needed and where to create a connection that can. Nothing is silently downgraded.
Every connection is listed under Settings → MCP Server, where you can see when it was last used and disconnect it. Disconnecting revokes its token immediately.

What the tools do

The server exposes thirty tools. Each one is scoped to the signed-in user's account and respects the same dashboard permissions as the app.
AreaReadWrite
Databases
list_databases
,
get_database_schema
,
query_database
Dashboards
list_dashboards
,
get_dashboard
,
list_dashboard_folders
,
search
create_dashboard
,
update_dashboard
,
clone_dashboard
,
create_dashboard_folder
Charts
get_chart
,
get_chart_data
,
pull_chart_data
create_chart
,
update_chart
,
clone_chart
,
delete_chart
,
set_chart_fields
,
set_chart_series
Filters
list_filters
create_filter
,
apply_filters_to_dashboard
Alerts
list_alerts
create_alert
,
run_alert_check
Sharing and embedding
list_share_links
,
list_domains
create_domain
,
revoke_domain
query_database
only runs SELECT statements and caps results at 1,000 rows unless the query sets a lower limit.
pull_chart_data
is a read unless it is asked to save the result's columns back onto the chart, so clients treat it as a write.
Each tool carries annotations saying whether it reads or writes, so a client such as Claude can run the read tools without asking and always confirms before a tool that changes or deletes something.

Things to try

  • "Which of my dashboards mention revenue? Open the Q3 one and tell me what each chart is showing."
  • "Query the orders database for weekly order counts over the last twelve weeks, then put it on my Sales dashboard as a line chart."
  • "Make the bars on the Signups by plan chart use our brand colours: Pro in purple, Team in green."
  • "Create an alert that emails me when yesterday's failed payments go above twenty."
  • "Clone the Executive Overview dashboard into the Board folder and remove the churn chart from the copy."
  • "Add a Region filter to the Regional Sales dashboard and apply it to every chart on it."

What the server can see

  • It acts as you. A tool can only reach dashboards, charts and databases your user already has access to.
  • Database credentials never travel over the connection.
    list_databases
    returns names, types and hosts only.
  • Queries run against your connected databases with the same read-only connection the app uses. Results are returned to the client and, for chart pulls, cached the same way a chart view is.
  • Every tool call is recorded against the connection that made it, so the connection list shows what has been used and when.
How Tractorscope handles data in general is covered by the privacy policy.

Troubleshooting

  • The client connects but no tools load. The client needs to support remote MCP servers over streamable HTTP with OAuth. Older clients that only speak stdio need a bridge such as
    mcp-remote
    .
  • A write tool says the key is read only. The connection was approved at the read level. Disconnect it under Settings → MCP Server and connect again, choosing read and write.
  • A query returns fewer rows than expected. Results are capped at 1,000 rows. Aggregate in SQL, or build a chart and read it with
    get_chart_data
    .