Docs / Contact / ai/claude-code
AI Skills
When you connect an AI assistant to the Contact MCP server, it automatically receives skills: guided instructions that teach the assistant how to use the tools effectively. No plugins or extra installation needed.
Setup
Add the Contact MCP server to your Claude Code configuration (.mcp.json in your project root or ~/.claude.json globally):
{
"mcpServers": {
"contact": {
"type": "http",
"url": "https://app.tendrl.com/contact/mcp",
"headers": {
"Authorization": "Bearer <CONTACT_API_KEY>"
}
}
}
}
Create API keys in the Contact dashboard under Access Control → API Keys.
The MCP tools call IAM- and account-gated endpoints. Connect with an account API key whose role grants those actions (the built-in Admin role is the simplest choice). An entity-bound key with the DefaultEntity role will connect but 403 on nearly every tool.
Access Control → API Keys → Add. The Role you pick here is what decides whether the MCP tools work — this is an account key, not a device's own key.
Once connected, Claude automatically discovers the available skills.
How it works
The Contact MCP server serves skills as MCP resources alongside its documentation. When any MCP client connects, it calls resources/list and sees the available skills. When you ask a question that matches a skill, the AI assistant reads the skill content via resources/read and uses it to guide which tools to call, what parameters to use, and how to interpret results.
This works with Claude Code, Cursor, Claude Desktop, and any MCP-compatible client. No plugins, no file downloads, no extra configuration; the skills ship with the server itself.
Skills
You don't need to remember tool names or parameters. Just describe what you want.
| Skill | What it does | Example triggers |
|---|---|---|
contact-devices |
Register devices, list entities, search messages, manage fanouts | "register a new temperature sensor", "show my devices", "search messages from last week" |
contact-admin |
Set up flows, manage connectors, services, roles, API keys, and usage | "set up a flow", "create a read-only role", "check my usage" |
How skills work
When you ask Claude something like "register a new temperature sensor," it reads the contact-devices skill from the server which provides context on:
- Which tool to call (
create_entity) - What parameters to include
- How to interpret the response
- Common follow-up patterns (e.g., grouping the new entity)
Local Dev Server
If you work with physical MicroPython devices, also add the local dev server to your MCP config:
{
"mcpServers": {
"tendrl-dev": {
"command": "tendrl-dev-mcp"
}
}
}
This provides device provisioning, file management, and debugging skills. See Local Dev Server for details.
Tendrl