cyberday-mcp
# Cyberday MCP Server
An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server for the [Cyberday.ai](https://www.cyberday.ai/) API. Enables AI agents (e.g. Claude Code, Claude Desktop) to read and manage your organization's data systems registry in Cyberday.
## Features
| Tool | Description |
|---|---|
| `list_systems` | List data systems with pagination (default 20 per page) |
| `search_systems` | Search/filter systems by name, status, framework, or assigned user |
| `get_system` | Get full details of a specific system by ID |
| `create_system` | Create a new data system |
| `create_system_advanced` | Create or update a system with extended fields (owner, admin, cost, processors, etc.) |
| `systems_summary` | Overview statistics: counts, status breakdown, hosting types, review status, framework coverage |
### Response formatting
- **Compact list view** — `list_systems` and `search_systems` return only key fields (name, status, owner, hosting, etc.)
- **Full details** — `get_system` returns all fields with human-readable names (e.g. `hosting_type`, `authentication_methods`)
- **Empty fields removed** automatically from all responses
- **HTML tags stripped** from text fields
- **Pagination** — `limit` and `offset` parameters on list/search tools
## Prerequisites
- Node.js 18+
- A Cyberday API key (requires admin access to generate)
## Installation
```bash
git clone https://github.com/telepist/cyberday-mcp.git
cd cyberday-mcp
npm install
npm run build
```
## Getting your API key
1. Log in to [Cyberday](https://www.cyberday.ai/)
2. Go to **Settings > Integration settings**
3. Enable **API Access**
4. Copy the API key
## Usage with Claude Code
Register the MCP server:
```bash
claude mcp add --transport stdio cyberday \
-e CYBERDAY_API_KEY=your-api-key-here \
-- node /path/to/cyberday-mcp/dist/index.js
```
Restart Claude Code. Then you can ask things like:
- "List our data systems"
- "Which systems are hosted outside EU?"
- "Show me the details of system 7796087"
- "Give me a summary of our system registry status"
- "Search for systems assigned to john@example.com"
- "Create a new system called 'Salesforce CRM'"
## Usage with Claude Desktop
Add to your Claude Desktop config (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"cyberday": {
"command": "node",
"args": ["/path/to/cyberday-mcp/dist/index.js"],
"env": {
"CYBERDAY_API_KEY": "your-api-key-here"
}
}
}
}
```
## Development
```bash
npm run dev # TypeScript watch mode
npm run build # Build for production
npm start # Start the server
```
## API limitations
The Cyberday public API currently supports **data systems management only**. Tasks, policies, frameworks, risks, and reports are not yet available via the API. The server is structured so that new endpoints can be easily added to `src/index.ts` as Cyberday expands its API.
Rate limit: **100 requests / 60 seconds**.
## License
[MIT](LICENSE)
TDQS
Scored across 6 tools
Most tools are clearly distinct: list/search/get handle different retrieval needs, and systems_summary provides aggregate analytics. However, create_system and create_system_advanced overlap on creation, which could cause an agent to choose the wrong one when extended fields are needed.
Five tools follow a consistent verb_noun snake_case pattern (list_systems, search_systems, get_system, create_system, create_system_advanced). The outlier systems_summary uses a noun_noun style, but the overall convention remains readable and predictable.
With six tools, the set is well-scoped for a data-system registry MCP. Each tool covers a distinct operation or aggregation need, and the count avoids both excessive fragmentation and under-provisioning.
The surface covers list, search, get, create, update-via-advanced-create, and summary analytics. The main gap is a dedicated delete or archive operation, which is a minor omission for a registry but not a severe workflow blocker.