io.github.tago-io/mcp-server

平台与服务

by tago-io

Model Context Protocol server for TagoIO data and analytics

什么是 io.github.tago-io/mcp-server

Model Context Protocol server for TagoIO data and analytics

README

<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.

json
{
  "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

bash
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.

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

Cursor

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

Windsurf

json
{
  "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:

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

Google Gemini CLI

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

Amazon Q CLI

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

Warp

Connect through the mcp-remote bridge.

json
{
  "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.

json
{
  "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
code
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:

bash
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:

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

For Claude Code:

bash
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:

bash
# 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:

bash
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.

常见问题

io.github.tago-io/mcp-server 是什么?

Model Context Protocol server for TagoIO data and analytics

相关 Skills

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描176.4k

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描176.4k

接口测试套件

by alirezarezvani

Universal
热门

扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。

帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。

平台与服务
未扫描26.0k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
89.7k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
80.0k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
72.9k

评论