Castle MCP by usefulapi
io.usefulapi/castle · v1.11.1
Investigate security events and manage the allow/deny lists an analyst acts on.
MCPremoteno credentialsEmail
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 14 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
B 88/100
What it does: 14 tools · 8 read, 6 write (incl. delete/pay) · Email
Test call castle_get_events_schema: needs a key: HTTP 401 (812 ms)
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +10
- Read/write annotations: +5
- Safe test call: +8
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://castle.usefulapi.io/mcpTools
14 tools listed at last check
castle_get_events_schemaList the event fields you can filter and group on, with their types. Read this first — the other query tools need real field names. Castle: GET /v1/events/schema.castle_search_eventsQuery the security event stream — logins, registrations, transactions and their risk verdicts. Read-only despite being a POST: Castle takes the query in the body. Castle: POST /v1/events/query.castle_group_eventsAggregate matching events by one or more fields — the fast way to see which IPs, devices or countries dominate a spike. Read-only despite being a POST. Castle: POST /v1/events/group.castle_search_listsFind the allow/deny lists defined in the environment. Read-only despite being a POST. Castle: POST /v1/lists/query.castle_get_listFetch a single list with its primary and secondary field definitions. Castle: GET /v1/lists/{id}.castle_search_list_itemsSearch the entries of one list — the blocked IPs, emails or device ids it holds. Read-only despite being a POST. Castle: POST /v1/lists/{list_id}/items/query.castle_count_list_itemsCount the entries in one list, with the same optional filters as the search. Read-only despite being a POST. Castle: POST /v1/lists/{list_id}/items/count.castle_get_list_itemFetch a single list entry — its value, who added it, the comment and its archive time. Castle: GET /v1/lists/{list_id}/items/{id}.castle_create_listCreate a new allow or deny list. primary_field is the event field its entries match on, e.g. ip or user.email. Castle: POST /v1/lists.castle_update_listRename a list or change its colour or description. Castle: PUT /v1/lists/{id}.castle_create_list_itemAdd an entry to a list — for example block an IP or an email. This changes live policy behaviour. Castle: POST /v1/lists/{list_id}/items.castle_update_list_itemChange the comment on a list entry. Castle: PUT /v1/lists/{list_id}/items/{id}.castle_archive_list_itemArchive a list entry so it stops matching. Reversible with castle_unarchive_list_item. Castle: DELETE /v1/lists/{list_id}/items/{id}/archive.castle_unarchive_list_itemRestore a previously archived list entry so it matches again. Castle: PUT /v1/lists/{list_id}/items/{id}/unarchive.
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/io.usefulapi/castle)