Ext Ops Panel
Open dashboard
Comparison

ThingsBoard vs io.github.grafana/mcp-grafana

ThingsBoard is an MCP server published by thingsboard. Marketplaces we read that list it: 1 (Docker MCP Catalog). io.github.grafana/mcp-grafana is an MCP server published by grafana. Marketplaces we read that list it: 5 (Official MCP Registry, Claude Code: claude-plugins-official, Docker MCP Catalog, Claude Code: claude-plugins-community, Community GitHub marketplaces). As of our marketplace pass on 2026-10-25. This pair was picked by a reader, not by our comparison rule, so search engines are asked not to index the page.

Where each is published

Where each is published
MarketplaceThingsBoardio.github.grafana/mcp-grafana
Docker MCP Catalog Listed
Version: sha256:b6733d2cfbb9
Forks (GitHub): 28
Pulls (Docker Hub): 10 149
Stars (Docker Hub): 0
Stars (GitHub): 98
Not marked · First seen
Listed
Version: sha256:9362bcf6aa0e
Forks (GitHub): 476
Pulls (Docker Hub): 1 105 086
Stars (Docker Hub): 22
Stars (GitHub): 3 599
Not marked · First seen
Official MCP Registry Not listed Listed
Version: v2.1.1
Forks (GitHub): 476
Stars (GitHub): 3 599
Not marked · First seen
Claude Code: claude-plugins-official Not listed Listed
Version: 0.2.0
Forks (GitHub): 5
Stars (GitHub): 19
Not marked · First seen
Claude Code: claude-plugins-community Not listed Listed
Version: 0.2.0
Forks (GitHub): 5
Stars (GitHub): 19
Not marked · First seen

Each figure is the marketplace's own and is never added up across marketplaces. A marketplace that publishes no figure shows none: no number is not zero.

The facts side by side

ThingsBoard vs io.github.grafana/mcp-grafana
FactThingsBoardio.github.grafana/mcp-grafana
Marketplaces that list it (differs)1 (worse)5 (better)
Stars (GitHub) (differs)98 (worse)3 599 (better)
Pulls (Docker Hub) (differs)10 149 (worse)1 105 086 (better)
Forks (GitHub) (differs)28 (worse)476 (better)
Last release (differs)Not published2026-10-20
Where it runs (differs)On your machine (mcp/thingsboard)Remote server or your machine
Transport (differs)stdioStreamable HTTP, stdio
Tools it declares (differs)6265
Environment variables it asks for (differs)3, secrets among them: 27, secrets among them: 2
Parts of the bundle (differs)Not a bundle2
LicenceApache-2.0Apache-2.0
Repository (differs)github.com/thingsboard/thingsboard-mcpgithub.com/grafana/mcp-grafana
Changes in the last 7 days (differs)04
First seen2026-10-112026-10-11
Endpoint at the last check (differs)no remote endpoint we checkResponded 29 h ago, requires a key

Lines where the two differ have a tinted background and bold values. Where the data itself says which value is better (more marketplaces, a larger figure of the same marketplace, a fresher release, a verified mark on a marketplace that lists both), the better one is also marked green with ▲ and the worse one red with ▼. Where it runs, the transport, the tools, the settings, hooks, the bundle's parts, the licence and the week's changes are marked only as different: more or fewer is not better in itself.

What each says it does

ThingsBoard

In its own words, on Docker MCP Catalog:

Connect your AI workflows to the ThingsBoard IoT Platform through this MCP server. Enables LLMs to query device telemetry, manage IoT entities (devices, assets, customers), and analyze sensor data - all through natural language. Perfect for building AI-powered IoT monitoring, predictive maintenance, and automated device management workflows. Supports both ThingsBoard Community Edition and Professional Edition.

io.github.grafana/mcp-grafana

In its own words, on Official MCP Registry:

An MCP server giving access to Grafana dashboards, data and more.

How to run each

ThingsBoard As a local MCP server: Docker image

Claude Code
claude mcp add --env "THINGSBOARD_PASSWORD=<YOUR_THINGSBOARD_PASSWORD>" --env "THINGSBOARD_USERNAME=<YOUR_THINGSBOARD_USERNAME>" --transport stdio thingsboard -- docker run -i --rm -e THINGSBOARD_PASSWORD -e THINGSBOARD_USERNAME mcp/thingsboard

Requires: THINGSBOARD_PASSWORD (secret), THINGSBOARD_USERNAME (secret)

io.github.grafana/mcp-grafana As a remote MCP server

Claude Code
claude mcp add --transport http mcp-grafana https://mcp.grafana.com/mcp

Requires: GRAFANA_PASSWORD (secret), GRAFANA_SERVICE_ACCOUNT_TOKEN (secret), GRAFANA_URL

Commands built only from what the marketplaces declare; the full set for every client is on each card.

Only io.github.grafana/mcp-grafana has a remote endpoint we check. How we check endpoints

Tools each declares

Only ThingsBoard declares

  • findByFrom
  • findByFromWithRelationType
  • findByTo
  • findByToWithRelationType
  • findInfoByFrom
  • findInfoByTo
  • getAdminSettings
  • getAlarmById
  • getAlarmInfoById
  • getAlarmTypes
  • getAlarms
  • getAllAlarms
Show the remaining 50
  • getAllCustomerUsers
  • getAssetById
  • getAssetsByEntityGroupId
  • getAssetsByIds
  • getAttributeKeys
  • getAttributeKeysByScope
  • getAttributes
  • getAttributesByScope
  • getCustomerAssets
  • getCustomerById
  • getCustomerDevices
  • getCustomerUsers
  • getCustomers
  • getCustomersByEntityGroupId
  • getDeviceById
  • getDeviceCredentialsByDeviceId
  • getDevicesByEntityGroupId
  • getDevicesByIds
  • getEntityGroupById
  • getEntityGroupByOwnerAndNameAndType
  • getEntityGroupsByIds
  • getEntityGroupsByOwnerAndType
  • getEntityGroupsByType
  • getEntityGroupsForEntity
  • getHighestAlarmSeverity
  • getLatestTimeseries
  • getRelation
  • getSecuritySettings
  • getSystemInfo
  • getTenantAdmins
  • getTenantAsset
  • getTenantAssets
  • getTenantCustomer
  • getTenantDevice
  • getTenantDevices
  • getTimeseries
  • getTimeseriesKeys
  • getUsageInfo
  • getUserAssets
  • getUserById
  • getUserCustomers
  • getUserDevices
  • getUsers
  • getUsersByEntityGroupId
  • getUsersForAssign
  • saveDeviceAttributes
  • saveEntityAttributesV1
  • saveEntityAttributesV2
  • saveEntityTelemetry
  • saveEntityTelemetryWithTTL

Only io.github.grafana/mcp-grafana declares

  • add_activity_to_incident
  • alerting_manage_routing
  • alerting_manage_rules
  • analyze_loki_labels
  • check_datasources_health
  • create_annotation
  • create_datasource
  • create_folder
  • create_incident
  • create_snapshot
  • delete_snapshot
  • find_error_pattern_logs
Show the remaining 53
  • find_slow_requests
  • generate_deeplink
  • get_alert_group
  • get_annotation_tags
  • get_annotations
  • get_assertions
  • get_current_oncall_users
  • get_dashboard_by_uid
  • get_dashboard_panel_queries
  • get_dashboard_property
  • get_dashboard_summary
  • get_datasource
  • get_incident
  • get_oncall_shift
  • get_panel_image
  • get_plugin
  • get_sift_analysis
  • get_sift_investigation
  • get_snapshot
  • grafana_api_request
  • install_plugin
  • list_alert_groups
  • list_datasources
  • list_incidents
  • list_loki_label_names
  • list_loki_label_values
  • list_oncall_schedules
  • list_oncall_teams
  • list_oncall_users
  • list_prometheus_label_names
  • list_prometheus_label_values
  • list_prometheus_metric_metadata
  • list_prometheus_metric_names
  • list_provisioning_repositories
  • list_pyroscope_label_names
  • list_pyroscope_label_values
  • list_pyroscope_profile_types
  • list_sift_investigations
  • list_snapshots
  • query_loki_logs
  • query_loki_patterns
  • query_loki_stats
  • query_prometheus
  • query_prometheus_histogram
  • query_pyroscope
  • search_dashboards
  • search_folders
  • search_plugin_information
  • suggest_loki_alloy_label_config
  • update_annotation
  • update_dashboard
  • update_datasource
  • validate_provisioning_file

Both declare

None

Tool names as each marketplace publishes them. More tools is not better in itself: compare what each needs for the job.

Settings each asks for

Only ThingsBoard asks for

  • THINGSBOARD_PASSWORD (secret)
  • THINGSBOARD_URL
  • THINGSBOARD_USERNAME (secret)

Only io.github.grafana/mcp-grafana asks for

  • GRAFANA_API_KEY (secret)
  • GRAFANA_EXTRA_HEADERS
  • GRAFANA_FORWARD_HEADERS
  • GRAFANA_ORG_ID
  • GRAFANA_PASSWORD (secret)
  • GRAFANA_SERVICE_ACCOUNT_TOKEN (secret)
  • GRAFANA_URL
  • GRAFANA_USERNAME

Settings as each marketplace publishes them. Asking for fewer is not better in itself.

What it can do: ThingsBoard · What it can do: io.github.grafana/mcp-grafana · Compare two other plugins

Data comes from the Docker MCP Catalog (desktop.docker.com/mcp/catalog) and Docker Hub. Data comes from the Official MCP Registry (registry.modelcontextprotocol.io), CC0 1.0. Data comes from the public marketplace file https://github.com/anthropics/claude-plugins-official/blob/HEAD/.claude-plugin/marketplace.json. Data comes from the public marketplace file https://github.com/anthropics/claude-plugins-community/blob/HEAD/.claude-plugin/marketplace.json. Data comes from public marketplace files in GitHub repositories of their authors. Figures come from our own regular passes over the marketplaces, last read on . We publish no contact details for plugin publishers.

Where the data comes from: how the catalog is built