Overview
The Model Context Protocol (MCP) lets AI applications securely connect to external APIs. In IoT projects, that means your AI application can automatically decide whether it needs to call Ubidots API in order to reply to a user prompt.
Examples:
“Which devices are offline?”
“Show the last values of
temperaturefor deviceaws810”."What was the average
temperatureyesterday ofMachine ABC"."What is the mean value of the variable
temperaturein the deviceaws810".
In this article we explore using Ubidots MCP from:
Claude Desktop
Anthropic API
Using Ubidots MCP server from Claude Desktop
Prerequisites
A Ubidots account and Ubidots API token (scoped for the org you want to use).
Claude Desktop installed (macOS/Windows/Linux).
Step-by-step
Open Claude Desktop Settings
Launch Claude Desktop → Settings → Developer.Edit Config
Click Edit config to openclaude_desktop_config.json.Add the Ubidots MCP server entry
Paste the snippet below into the JSON (merge with your existingmcpServersif present).
Replace<YOUR UBIDOTS TOKEN>with your actual token.{
"mcpServers": {
"ubidots": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.ubidots.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer <YOUR UBIDOTS TOKEN>"
}
}
}
}Notes
If
mcpServersalready exists, add only the"ubidots"block inside it.Keep JSON syntax valid (commas, braces).
The URL above (
/mcp) exposes all available tools. See Scoped MCP paths below to restrict access by entity or permission level.
Save & Reload Claude
Save the file and restart Claude Desktop (or use “Reload” if available).Verify the connection
In a new Claude chat, make sure the MCP is enabled and try this:“Which devices are online?"
If configured correctly, Claude should confirm the MCP tool is available and return live data from Ubidots.
Troubleshooting
Claude doesn’t show the Ubidots tool
Restart Claude after editing the config.
Check JSON validity (use an online JSON linter if needed).
Ensure
npxis available in your system PATH.
401 / Unauthorized
Verify the header is exactly:
x-auth-token: <YOUR UBIDOTS TOKEN>.Check the token hasn’t expired or been revoked.
Network errors
Confirm you’re online and not behind a proxy/firewall blocking outbound HTTPS.
Try again later in case of transient network issues.
Multiple MCP servers configured
Make sure there are no duplicate keys named
ubidots.If you renamed the server, remember the name you’ll see inside Claude will match that key.
Updating or Removing the Integration
Update token: Open
claude_desktop_config.json, replace the token in the header, save, and reload Claude.Disable: Remove or comment out the
"ubidots"block undermcpServers, save, and reload Claude.
Using Ubidots MCP server with Anthropic API
While Claude Desktop is great for testing, it does not resemble real world scenarios, where users will want to interact with an AI agent through Slack, Whatsapp, or a web-based chat box within your Ubidots-powered application.
In such scenarios, using an AI API such as OpenAI API or Anthropic API will enable you to add the required layer of intelligence to your use case.
Here's a sample request you'd use from such an application in order to interact with both your user queries, and Ubidots MCP:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-04-04" \
-d '{
"model": "claude-3-5-sonnet-20240620",
"max_tokens": 500,
"system": "You are a smart IoT assistant. If you need device data, use the attached MCP.",
"messages": [
{"role": "user", "content": "List my devices"}
],
"mcp_servers": [
{
"type": "url",
"name": "ubidots",
"url": "https://mcp.ubidots.com/mcp",
"authorization_token": "YOUR_UBIDOTS_TOKEN"
}
]
}'
To learn more about Anthropic MCP connector, please visit their official documentation.
Scoped MCP paths
By default, connecting to https://mcp.ubidots.com/mcp exposes all available tools to the AI. You can narrow this down by using a more specific path — either to restrict permissions (read-only) or to limit the scope to a specific entity (devices, variables, etc.).
This is useful for two reasons:
Security: You can guarantee the AI only has read access, or that it can only interact with a specific subset of your data.
Token efficiency: Exposing fewer tools means less context is sent to the AI model on every request, reducing input token consumption.
Available paths
Path | Description |
| All tools (read and write) across all entities |
| All tools, restricted to read-only operations |
| All tools scoped to devices only |
| Read-only tools scoped to devices only |
| All tools scoped to variables only |
| Read-only tools scoped to variables only |
| All tools scoped to device groups only |
| Read-only tools scoped to device groups only |
| All tools scoped to device types only |
| Read-only tools scoped to device types only |
| All tools scoped to organizations only |
| Read-only tools scoped to organizations only |
| All tools scoped to events only |
| Read-only tools scoped to events only |
Example: read-only access to devices
In a Claude Desktop config, simply replace the URL:
"args": [
"-y",
"mcp-remote",
"https://mcp.ubidots.com/mcp/_/devices/readonly",
"--header",
"Authorization:${AUTH_HEADER}"
]
In an Anthropic API call:
"mcp_servers": [
{
"type": "url",
"name": "ubidots",
"url": "https://mcp.ubidots.com/mcp/_/devices/readonly",
"authorization_token": "YOUR_UBIDOTS_TOKEN"
}
]
FAQ
Does this work with other MCP clients?
Yes. Any MCP-compatible client can connect to https://mcp.ubidots.com/mcp (or any of the scoped paths) using the same Authorization header.
Is the server local?
No. The Ubidots MCP Server is cloud-hosted; saving you the need to run it locally, and enabling applications such as Whatsapp AI bots.
Can I use multiple Ubidots accounts?
Yes—create separate entries (e.g., ubidots-prod, ubidots-staging) with different tokens.
MCP Tools
The Ubidots MCP server provides read access to your account data and supports querying information across the following entities:
Devices
Includes associated variables and device type.
Variables
Access variable metadata and values.
Device Types
Includes associated devices and organization.
Device Groups
Includes devices, and for each device its variables and device type.
Organizations
Read organization-level metadata.
Events
Read event data.
List of statistical aggregate functions that can be queried using the MCP server
The MCP server can compute aggregated results over user variables using the following operations:
First
Last
Min
Max
Count
Sum
Mean
Standard deviation
Percentile 25
Percentile 50
Percentile 75
Example Prompts to Get You Started
“List organizations and show device counts for each.”
“For device
aws810, list variables and show last timestamps and values.”"What’s the average temperature at which the AC is running on each floor?"
If you run into issues or have feature requests for the Ubidots MCP Server, let us know what client you’re using, your OS, and a redacted copy of your mcpServers config so we can help faster.
