PluginBench
MCP Server
Active

io.github.tago-io/mcp-server MCP Server

io.github.tago-io/mcp-server

AI-powered management of TagoIO devices, data, dashboards, and analyses from your IDE.

What is the io.github.tago-io/mcp-server MCP server?

The TagoIO MCP server connects your AI assistant to your TagoIO account, enabling you to read and manage devices, data, dashboards, analyses, and account settings through natural language. It provides around 80 focused capabilities for fleet management, debugging, dashboard building, and account administration without leaving your IDE.

TagoIO MCP server lets you interact with your entire TagoIO account—devices, data, dashboards, analyses—by describing what you want to accomplish. Your AI assistant handles the technical details: querying device data, creating dashboards, debugging analyses, managing permissions, and maintaining account health. It works in VS Code, Cursor, Claude Desktop, and other AI-powered IDEs.

How to install io.github.tago-io/mcp-server

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • TAGOIO_TOKEN
    required
    secret

    Your TagoIO Profile Token or Analysis Token

  • TAGOIO_API

    Your API endpoint for the TagoIO. Defaults to https://api.us-e1.tago.io

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@tago-io/mcp-server"
      ],
      "env": {
        "TAGOIO_TOKEN": "<YOUR_TAGOIO_TOKEN>",
        "TAGOIO_API": "<YOUR_TAGOIO_API>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • Device Management — List devices, create new devices, retrieve device tokens, and query device data and status.
  • Data Querying — Retrieve historical records from devices, filter by time windows and variables, and summarize data.
  • Dashboard Building — Create and configure dashboards with maps, charts, gauges, and other widgets based on natural language descriptions.
  • Analysis Management — Read analysis configurations, view console logs, upload and execute scripts, and debug failures.
  • Account Administration — Check data record limits, manage stored files, view account usage, and monitor quota consumption.
  • Permission & Policy Management — Query and understand access policies, diagnose permission errors, and review IAM configurations.
  • User Impersonation — Log in as another user to debug their dashboard and account visibility.
  • Custom Widget Development — Validate and develop custom React widgets for dashboards with contract enforcement.

Use cases

  • Identify devices that haven't sent data in the last 7 days and investigate why.
  • Debug a failed analysis by reading its console logs and fixing the script without switching tabs.
  • Build a cold-chain fleet dashboard with maps, temperature charts, and battery-level cards from a description.
  • Diagnose permission errors in analyses and determine what IAM policies are needed.
  • Find and delete stored files older than a year to manage account storage and costs.

io.github.tago-io/mcp-server MCP server FAQ

What is the TagoIO MCP server?

It's a bridge that lets your AI assistant (Claude, Copilot, etc.) read and manage your TagoIO account—devices, data, dashboards, analyses, and permissions—through natural language, all from your IDE.

Is it free?

The server itself is free. You need a TagoIO account (which has a free tier) and a Profile Token generated in your TagoIO Profile Settings.

How do I install it in Cursor or Claude?

Use the install button in the README for your tool (Cursor, Claude Desktop, VS Code, etc.), or manually add the config with your TagoIO Profile Token. The server connects to the hosted endpoint at https://mcp.ai.tago.io.

What authentication does it require?

A TagoIO Profile Token (Bearer format), generated in your Profile Settings. You can also use Analysis or Device tokens for scoped access. The token is passed as an Authorization header and is stripped from all results before reaching your assistant.

Can I run it locally?

Yes. Install Node.js 22.12+ and run `npx -y @tago-io/mcp-server` for STDIO mode or `npx -y @tago-io/mcp-server http` for HTTP on port 3000. Set the TAGOIO_TOKEN environment variable.

Does it support multiple regions?

Yes. The default is US East. Set the `x-tagoio-region` header to `eu-w1` for EU West, or pass your TagoDeploy instance's full API endpoint.

README (reference)

Source of truth, from the repository.

<br/> <p align="center"> <img src="https://assets.tago.io/tagoio/tagoio.png" width="200px" alt="TagoIO"></img> </p>

TagoIO | MCP Server

Work on your TagoIO account by asking. Your AI assistant reads your devices, data, dashboards, and analyses, and makes the changes you ask for, from your IDE or chat tool.

Install in VS Code Install in VS Code Insiders Install in Visual Studio Install in Cursor Add to LM Studio


Start here

  1. Get a token. Generate a Profile Token in TagoIO Profile Settings.
  2. Add the server to your client. Use an install button above, or copy the config for your tool from Client setup.
  3. Ask something. Try: "List my devices and tell me which ones stopped sending data this week."

Your client connects to the TagoIO hosted server at https://mcp.ai.tago.io. You can also run the server yourself.

What you can ask for

The server gives your assistant around 80 focused capabilities across your account. You describe the outcome, and it picks the tools. Some things that work well today:

Understand your fleet

  • "Which devices haven't sent data in the last 7 days?"
  • "Show me the last 50 records from Water Meter 12 and summarize the flow variable."
  • "Create a device on my LoRaWAN network, then give me its token."

Debug without tab-switching

  • "The Daily Report analysis failed last night. Read the console and tell me why."
  • "Fix the bug you found, upload the script, and run it once to confirm."
  • "A customer says their dashboard is empty. Log in as that user and check what they see."

Build dashboards from a description

  • "Build a dashboard for my cold chain fleet: a map of the units, a temperature line chart for the last 24 hours, and a card for battery level."
  • "This gauge shows no value. Compare its configuration to the variables the device actually sends."

Untangle permissions

  • "My analysis gets a permission error writing to the Sites entity. What policy does it need?"
  • "Show me every access policy that touches TagoRUN users."

Keep the account tidy

  • "How close am I to my data records limit this month?"
  • "Find stored files older than a year and larger than 5 MB, then delete them."

Write code with the docs in context

  • "Find the official example for parsing a Dragino LHT65 payload and adapt it to my device."

The server reads and writes. Deleting data, rotating credentials, and uploading scripts run through your assistant's confirmation flow, so you approve each change before it lands.

Client setup

Each config below points at the hosted server. Replace YOUR-TAGOIO-TOKEN with your Profile Token.

ClientWhere the config lives
VS Code / GitHub Copilot.vscode/mcp.json or User Settings
Claude Codeclaude mcp add-json CLI
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json (macOS), %APPDATA%\Claude\claude_desktop_config.json (Windows)
Cursor~/.cursor/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json
JetBrains IDEsSettings > Tools > AI Assistant > MCP
Google Gemini CLI~/.gemini/settings.json
Amazon Q CLI~/.aws/amazonq/mcp.json
Warp~/.warp/mcp.json
Kiro.kiro/mcp.json
OpenAI Agents / ChatGPTAgent Builder UI

VS Code / GitHub Copilot

Add to .vscode/mcp.json for one project, or to User Settings for all of them. VS Code Insiders takes the same config, and Copilot reads the same file.

{
  "servers": {
    "@tago-io/mcp": {
      "type": "http",
      "url": "https://mcp.ai.tago.io",
      "headers": {
        "Authorization": "Bearer ${input:tagoToken}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "tagoToken",
      "description": "TagoIO Profile Token",
      "password": true
    }
  ]
}

Claude Code

claude mcp add-json tagoio '{"type":"http","url":"https://mcp.ai.tago.io","headers":{"Authorization":"Bearer YOUR-TAGOIO-TOKEN"}}'

Claude Desktop

Connect through the mcp-remote bridge.

{
  "mcpServers": {
    "@tago-io/mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.ai.tago.io",
        "--header",
        "Authorization: Bearer YOUR-TAGOIO-TOKEN"
      ]
    }
  }
}

Cursor

{
  "mcpServers": {
    "@tago-io/mcp": {
      "url": "https://mcp.ai.tago.io",
      "headers": {
        "Authorization": "Bearer YOUR-TAGOIO-TOKEN"
      }
    }
  }
}

Windsurf

{
  "mcpServers": {
    "@tago-io/mcp": {
      "serverUrl": "https://mcp.ai.tago.io",
      "headers": {
        "Authorization": "Bearer YOUR-TAGOIO-TOKEN"
      }
    }
  }
}

JetBrains IDEs

Open Settings > Tools > AI Assistant > Model Context Protocol (MCP), add a server, and paste:

{
  "servers": {
    "@tago-io/mcp": {
      "url": "https://mcp.ai.tago.io",
      "requestInit": {
        "headers": {
          "Authorization": "Bearer YOUR-TAGOIO-TOKEN"
        }
      }
    }
  }
}

Google Gemini CLI

{
  "mcpServers": {
    "@tago-io/mcp": {
      "httpUrl": "https://mcp.ai.tago.io",
      "headers": {
        "Authorization": "Bearer YOUR-TAGOIO-TOKEN"
      }
    }
  }
}

Amazon Q CLI

{
  "mcpServers": {
    "@tago-io/mcp": {
      "url": "https://mcp.ai.tago.io",
      "headers": {
        "Authorization": "Bearer YOUR-TAGOIO-TOKEN"
      }
    }
  }
}

Warp

Connect through the mcp-remote bridge.

{
  "mcpServers": {
    "@tago-io/mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.ai.tago.io",
        "--header",
        "Authorization: Bearer YOUR-TAGOIO-TOKEN"
      ]
    }
  }
}

Kiro

Connect through the mcp-remote bridge, in .kiro/mcp.json at your project root.

{
  "mcpServers": {
    "@tago-io/mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.ai.tago.io",
        "--header",
        "Authorization: Bearer YOUR-TAGOIO-TOKEN"
      ]
    }
  }
}

OpenAI Agents / ChatGPT

In Agent Builder or ChatGPT MCP settings:

  • Server URL: https://mcp.ai.tago.io
  • Protocol: Streamable HTTP
  • Authentication: Authorization: Bearer YOUR-TAGOIO-TOKEN header

Choosing a token

TokenWhere to get itWhat it reaches
ProfileProfile SettingsYour whole profile. Start here.
AnalysisAnalysis > your analysis, set to run "External"Only what that analysis can reach. Fits shared and production environments where access is controlled through IAM.
DeviceThe device itselfThat device's data. Account-level requests return a permission error.

Regions and endpoints

Requests go to US East by default. Set the x-tagoio-region header to reach a different endpoint:

ValueTarget
us-e1US East (default)
eu-w1EU West
https://api.your-instance.ioYour dedicated TagoDeploy instance
x-tagoio-region: eu-w1

For TagoDeploy, pass your instance's full API endpoint over https://. This works on the hosted server, so a dedicated instance needs the same one-line config as a public region.

Over STDIO there are no headers. Set TAGOIO_API to your endpoint instead.

Run it locally

Run the server on your own machine for offline work, or when your network blocks outbound connections. Install Node.js 22.12 or newer, then:

npx -y @tago-io/mcp-server        # STDIO, what desktop apps and IDEs expect
npx -y @tago-io/mcp-server http   # HTTP on port 3000

STDIO reads the token from the environment:

{
  "mcpServers": {
    "@tago-io/mcp": {
      "command": "npx",
      "args": ["-y", "@tago-io/mcp-server"],
      "env": {
        "TAGOIO_TOKEN": "YOUR-TAGOIO-TOKEN"
      }
    }
  }
}

For Claude Code:

claude mcp add @tago-io/mcp-server -e TAGOIO_TOKEN=YOUR-TAGOIO-TOKEN -- npx -y @tago-io/mcp-server

HTTP mode takes the token per request, so several people can share one server with their own credentials. Set the port with MCP_PORT, and check GET /health to confirm the server is up. To point any config in this README at your local server, swap the URL for http://localhost:3000. Run npx -y @tago-io/mcp-server --help for the full option list.

Writing custom widgets

Custom widgets are React components with a strict authoring contract: a provider wrapper, pinned npm: dependencies, a // tailwind marker. The server validates your code against that contract and reports what breaks it.

The custom widget skill teaches the contract itself, with worked examples. Install it for Claude Code:

# all projects
mkdir -p ~/.claude/skills/custom-widget-development
curl -fsSL https://raw.githubusercontent.com/tago-io/mcp-server/master/skills/custom-widget-development/SKILL.md \
  -o ~/.claude/skills/custom-widget-development/SKILL.md

# one project
mkdir -p .claude/skills/custom-widget-development
curl -fsSL https://raw.githubusercontent.com/tago-io/mcp-server/master/skills/custom-widget-development/SKILL.md \
  -o .claude/skills/custom-widget-development/SKILL.md

For other clients, put the same file wherever that client loads skills or reusable prompts from.

Your token and your data

The server strips your token from every result, error, script download, and console output before it reaches your assistant. Environment variable values, minted analysis tokens, and signed file URLs get the same treatment.

Some settings stay in the TagoIO admin: TagoRUN environment configuration, SSO and custom domains, test emails, and anonymous user creation.

Troubleshooting

It won't connect. Confirm the token is still valid and that https://mcp.ai.tago.io is reachable from your network. If your account lives in EU West, set the x-tagoio-region header.

Authentication error. Over HTTP the header reads Bearer YOUR-TOKEN, with the space. Over STDIO the token goes in TAGOIO_TOKEN. If the format checks out, the token may lack permission for what you asked.

A request comes back empty. Two usual causes: the device has no data in the window you asked about, or your profile lacks access to that device.

The bridge fails (Claude Desktop, Warp, Kiro). Check for Node.js 22.12 or newer, then run the bridge by hand to read the real error:

npx -y mcp-remote https://mcp.ai.tago.io --header "Authorization: Bearer YOUR-TOKEN"
<details> <summary><b>Full tool reference</b></summary> <br/>

Every tool the server exposes, grouped by domain. Each one carries its own parameters, limits, and read or write annotation in the description your client reads.

DomainTools
Devicessearch_devices, get_device, create_device, update_device, delete_device, configure_device
Device dataread_device_data, send_device_data, edit_device_data, delete_device_data
Actionssearch_actions, get_action, create_action, update_action, delete_action
Analysessearch_analyses, get_analysis, create_analysis, update_analysis, delete_analysis, upload_analysis_script, download_analysis_script, run_analysis, read_analysis_console
Dashboards & widgetssearch_dashboards, get_dashboard, create_dashboard, update_dashboard, delete_dashboard, get_widget, create_widget, update_widget, delete_widget, widget_schema_lookup, validate_widget_configuration, get_custom_widget_code, upload_custom_widget_code
Entitiessearch_entities, get_entity, create_entity, update_entity, delete_entity, update_entity_schema
Entity dataread_entity_data, send_entity_data, edit_entity_data, delete_entity_data, empty_entity_data
Run userssearch_run_users, get_run_user, create_run_user, update_run_user, delete_run_user, login_as_run_user
Run-user notificationsread_run_user_notifications, send_run_user_notification, update_run_user_notification, delete_run_user_notification
Filessearch_files, delete_files
Access managementsearch_access_policies, get_access_policy, lookup_access_permissions, create_analysis_access_policy, create_run_user_access_policy, update_analysis_access_policy, update_run_user_access_policy, delete_access_policy
Profileget_profile, get_profile_limits, get_profile_statistics, search_secrets
Connectors & networkssearch_connectors, get_connector, search_networks, get_network
Docs & examplesplatform_overview, search_docs, read_doc, search_code_examples, get_code_example
</details>

Contributing

Issues and pull requests are welcome. Agent instructions live in AGENTS.md.

License

MIT. See the LICENSE file.


Built by the TagoIO team. Need a hand? Check the TagoIO documentation or contact support.

Related MCP servers

TATailscale logo

Tailscale

Active

186 tools to drive a Tailscale node and tailnet through CLI and control-plane API.

9
Rust
Apache-2.0
View repository →

Dynamic context loading for AI assistants with TDD workflow and AST analysis

1
TypeScript
GPL-3.0
View repository →

Publish videos to TikTok, Instagram Reels, YouTube Shorts, X, and Facebook through AI agents.

255
JavaScript
MIT
View repository →

MCP cron validator for AI agents; flags impossible schedules and other silent cron bugs.

0
JavaScript
MIT
View repository →

An MCP server for Google Workspaces.

0
TypeScript
View repository →

An MCP server for Google Workspaces.

0
TypeScript
View repository →