sylvia-iot-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sylvia-iot-mcplist all units"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sylvia-iot-mcp
An MCP server that exposes sylvia-iot-core management APIs as tools for AI assistants (Claude, etc.).
Note: This project is a practice ground for AI-assisted development using Claude Code with a spec-driven workflow powered by OpenSpec.
Features
66 tools across 10 capability areas:
Category | Tools |
Auth |
|
OAuth2 Clients |
|
Units |
|
Applications |
|
Networks |
|
Devices |
|
Device Routes |
|
Network Routes |
|
Downlink Buffer |
|
Data | application/network uplink/downlink data counts and lists, coremgr operation logs |
Related MCP server: AI Core MCP Server
Requirements
Node.js >= 18
A running sylvia-iot-core instance
An OAuth2 client with
client_credentialsgrant enabled
Setup
1. Create an OAuth2 client
The MCP server authenticates to sylvia-iot-core using the client_credentials grant. You need a private (confidential) client with this grant enabled.
If you have admin access, you can create one via the sylvia-iot-auth API or management UI.
2. Configure environment variables
Copy .env.example to .env and fill in your values:
cp .env.example .envSYLVIA_IOT_AUTH_URL=http://your-host/auth
SYLVIA_IOT_COREMGR_URL=http://your-host/coremgr
SYLVIA_IOT_DATA_URL=http://your-host/data
SYLVIA_IOT_CLIENT_ID=your-client-id
SYLVIA_IOT_CLIENT_SECRET=your-client-secretThe URL defaults point to a local sylvia-iot-core instance started with default settings.
3. Run the server
npm install
node src/index.jsClaude Code / Claude Desktop Integration
Add the server to your MCP config (e.g. ~/.claude.json for Claude Code).
Via npx (no installation required):
{
"mcpServers": {
"sylvia-iot": {
"command": "npx",
"args": ["-y", "github:woofdogtw/sylvia-iot-mcp"],
"env": {
"SYLVIA_IOT_AUTH_URL": "http://your-host/auth",
"SYLVIA_IOT_COREMGR_URL": "http://your-host/coremgr",
"SYLVIA_IOT_DATA_URL": "http://your-host/data",
"SYLVIA_IOT_CLIENT_ID": "your-client-id",
"SYLVIA_IOT_CLIENT_SECRET": "your-client-secret"
}
}
}
}Via local checkout:
{
"mcpServers": {
"sylvia-iot": {
"command": "node",
"args": ["/path/to/sylvia-iot-mcp/src/index.js"],
"env": {
"SYLVIA_IOT_AUTH_URL": "http://your-host/auth",
"SYLVIA_IOT_COREMGR_URL": "http://your-host/coremgr",
"SYLVIA_IOT_DATA_URL": "http://your-host/data",
"SYLVIA_IOT_CLIENT_ID": "your-client-id",
"SYLVIA_IOT_CLIENT_SECRET": "your-client-secret"
}
}
}
}Once connected, you can manage your IoT platform conversationally:
"List all units", "Create a new application for unit X", "Show me the latest uplink data from network Y"
Authentication
The server uses OAuth2 client_credentials grant to obtain a bearer token. The token is cached in memory and refreshed automatically on expiry or 401 responses. No user login is required.
Development
# Watch mode
npm run dev
# Run end-to-end tests (requires running sylvia-iot-core)
node test-mcp.mjsThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/woofdogtw/sylvia-iot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server