{"id":50525503,"url":"https://github.com/openremote/mcp-server","last_synced_at":"2026-06-03T07:31:11.190Z","repository":{"id":359827318,"uuid":"1237788550","full_name":"openremote/mcp-server","owner":"openremote","description":"Model Context Protocol server for the OpenRemote IoT platform — exposes assets, attributes, datapoints, and the asset model to AI assistants.","archived":false,"fork":false,"pushed_at":"2026-05-21T13:12:36.000Z","size":92,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T17:33:41.917Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openremote.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-13T14:06:10.000Z","updated_at":"2026-05-20T09:39:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/openremote/mcp-server","commit_stats":null,"previous_names":["openremote/mcp-server"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/openremote/mcp-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openremote%2Fmcp-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openremote%2Fmcp-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openremote%2Fmcp-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openremote%2Fmcp-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openremote","download_url":"https://codeload.github.com/openremote/mcp-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openremote%2Fmcp-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33853984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-03T07:31:09.129Z","updated_at":"2026-06-03T07:31:11.178Z","avatar_url":"https://github.com/openremote.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @openremote/mcp-server\n\n\u003e ⚠️ **Beta — early work.** API may change before 1.0. Use in production at your own risk. Feedback welcome via [GitHub Issues](https://github.com/openremote/mcp-server/issues).\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server for the [OpenRemote](https://openremote.io) IoT platform. Exposes asset and attribute operations as tools and resources for AI assistants like Claude Desktop and Claude Code.\n\n## Capabilities\n\n### Tools (10)\n\n| Tool | Purpose |\n|---|---|\n| `query_assets` | Search assets by type, realm, parent, name, ids |\n| `get_asset` | Read a single asset incl. attributes |\n| `create_asset` | Create a new asset |\n| `update_asset` | Partial update; merges attributes by default |\n| `delete_assets` | Bulk delete by ids |\n| `get_attribute` | Read one attribute (value + meta) |\n| `write_attribute` | Write a single attribute value |\n| `write_attributes` | Bulk write across assets |\n| `get_attribute_history` | Time-series datapoints (`lttb`/`all`/`interval`/`nearest`) |\n| `update_attribute_meta` | Partial-merge meta on one attribute (`label`, `units`, `ruleState`, …) |\n| `get_asset_types` | List asset type descriptors |\n| `get_value_descriptors` | List value type descriptors |\n| `get_meta_item_descriptors` | List meta item descriptors |\n\n### Resources (4)\n\n| URI | What |\n|---|---|\n| `openremote://asset-model/types` | Catalog of asset types and their attribute descriptors |\n| `openremote://asset-model/values` | Catalog of value types and constraints |\n| `openremote://asset-model/meta` | Catalog of meta item descriptors |\n| `openremote://realm/{name}` | A realm definition (templated; `list` enumerates accessible realms) |\n\n## Install\n\nRun on demand with `npx`:\n\n```bash\nnpx -y @openremote/mcp-server\n```\n\nOr install globally:\n\n```bash\nnpm install -g @openremote/mcp-server\nopenremote-mcp\n```\n\n## Configuration\n\nAll configuration is via environment variables.\n\n| Variable | Required | Default | Description |\n|---|---|---|---|\n| `OPENREMOTE_HOST` | yes | — | Full URL, e.g. `https://demo.openremote.io` |\n| `OPENREMOTE_CLIENT_ID` | yes | — | Service user client id |\n| `OPENREMOTE_CLIENT_SECRET` | yes | — | Service user client secret |\n| `OPENREMOTE_REALM` | no | `master` | Realm of the service user |\n\n### Service user setup\n\n1. Log into OpenRemote as a realm admin.\n2. Create a **service user** in the relevant realm (`master` recommended for cross-realm access).\n3. Grant roles: at minimum `read:assets`, `write:assets`. Add `read:admin`/`write:admin` for realm visibility.\n4. Copy the generated client id and secret into the env vars above.\n\n## Quickstart — Claude Desktop\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or the equivalent on your platform:\n\n```json\n{\n  \"mcpServers\": {\n    \"openremote\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@openremote/mcp-server\"],\n      \"env\": {\n        \"OPENREMOTE_HOST\": \"https://your-instance.openremote.io\",\n        \"OPENREMOTE_CLIENT_ID\": \"your-service-user\",\n        \"OPENREMOTE_CLIENT_SECRET\": \"your-secret\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop. Try: *\"list assets in master realm\"* or *\"attach the asset-types catalog as context\"*.\n\n## Quickstart — Claude Code\n\n```bash\nclaude mcp add openremote -- npx -y @openremote/mcp-server\n```\n\nSet env vars in your shell profile or per-project `.env`.\n\n## Local development\n\n```bash\ngit clone https://github.com/openremote/mcp-server.git\ncd mcp-server\nnpm install\ncp .env.example .env   # then fill in values\nnpm run typecheck\nnpm test\nnpm run build\nnode dist/index.js     # starts on stdio\n```\n\nUse the official [MCP Inspector](https://github.com/modelcontextprotocol/inspector) to test interactively:\n\n```bash\nnpx @modelcontextprotocol/inspector node dist/index.js\n```\n\n## License\n\n[AGPL-3.0-or-later](./LICENSE). Copyright OpenRemote contributors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenremote%2Fmcp-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenremote%2Fmcp-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenremote%2Fmcp-server/lists"}