SafetyChain MCP by usefulapi
io.usefulapi/safetychainusefulapi.iostreamable-httpv1.2.0Scanned
Read SafetyChain food safety records, CAPAs, forms, suppliers, items, locations and equipment.
29 tools: 1 change things and 28 only read.
- Reads private data · 0
- Reads text others write · 29
- Can send data out · 0
- No findings
Anlyon alternative
1 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
29 tools
Changes things 1Claude Code: ask
safetychain_record_existsCheck whether a record exists for a record id (GUID).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Check whether a record exists for a record id (GUID). GET /clientapis/recordmanagement/v1.0/record/{recordId}/Exists.
Annotations the server declares
- title: Check a record exists
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Only reads 28Show 28 read-only tools
safetychain_get_capaGet one CAPA's details: status, severity, event and due dates, summary, creator, resource, source, category, owner workgroup, template and steps.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_capa" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get one CAPA's details: status, severity, event and due dates, summary, creator, resource, source, category, owner workgroup, template and steps. The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}.
Annotations the server declares
- title: Get CAPA
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_capa_activityList a CAPA's activity (comments and events).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_capa_activity" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "list" and "comment": it reads comments, which other people can write.
Description, as the server wrote it List a CAPA's activity (comments and events). The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/activity.
Annotations the server declares
- title: Get CAPA activity
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_capa_attachmentsList a CAPA's attachments (name, extension, link, creator, date).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_capa_attachments" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List a CAPA's attachments (name, extension, link, creator, date). The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/attachments.
Annotations the server declares
- title: Get CAPA attachments
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_capa_historyList a CAPA's history entries.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_capa_history" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List a CAPA's history entries. The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/history.
Annotations the server declares
- title: Get CAPA history
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_capa_linked_capasList a CAPA's linked CAPAs.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_capa_linked_capas" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List a CAPA's linked CAPAs. The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/linkedcapas.
Annotations the server declares
- title: Get CAPA linked capas
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_capa_linked_recordsList a CAPA's linked records.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_capa_linked_records" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List a CAPA's linked records. The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/linkedrecords.
Annotations the server declares
- title: Get CAPA linked records
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_capa_tasksList a CAPA's tasks (step, form, location, resource, workgroup, assignee, due date, status).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_capa_tasks" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List a CAPA's tasks (step, form, location, resource, workgroup, assignee, due date, status). The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/tasks.
Annotations the server declares
- title: Get CAPA tasks
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_categoryGet one category by id (an id from safetychain_list_categories).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_category" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get one category by id (an id from safetychain_list_categories). GET /clientapis/resourcemanagement/v1.0/category/{id}.
Annotations the server declares
- title: Get category
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_customerGet one customer by id (an id from safetychain_list_customers).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_customer" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get one customer by id (an id from safetychain_list_customers). GET /clientapis/resourcemanagement/v1.0/customer/{id}.
Annotations the server declares
- title: Get customer
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_equipmentGet one equipment by id (an id from safetychain_list_equipment).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_equipment" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get one equipment by id (an id from safetychain_list_equipment). GET /clientapis/resourcemanagement/v1.0/equipment/{id}.
Annotations the server declares
- title: Get equipment
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_formGet one form by id (an id from safetychain_list_forms).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_form" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get one form by id (an id from safetychain_list_forms). GET /clientapis/resourcemanagement/v1.0/form/{id}.
Annotations the server declares
- title: Get form
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_itemGet one item by id (an id from safetychain_list_items).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_item" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get one item by id (an id from safetychain_list_items). GET /clientapis/resourcemanagement/v1.0/item/{id}.
Annotations the server declares
- title: Get item
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_locationGet one location by id (an id from safetychain_list_locations).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_location" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get one location by id (an id from safetychain_list_locations). GET /clientapis/resourcemanagement/v1.0/location/{id}.
Annotations the server declares
- title: Get location
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_recordGet one submitted record in full by its record id (the GUID `recordId` from safetychain_search_records): form, who submitted it and when, location, resource, field values, verifica…Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_record" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get one submitted record in full by its record id (the GUID `recordId` from safetychain_search_records): form, who submitted it and when, location, resource, field values, verifications. GET /clientapis/recordmanagement/v1.0/record/{recordId}.
Annotations the server declares
- title: Get record
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_record_fieldsGet the field-level values of records (one entry per record with its fields: name, short name, type, value, unit, compliance, min, max, target, comments, section).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_record_fields" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "get" and "comment": it reads comments, which other people can write.
Description, as the server wrote it Get the field-level values of records (one entry per record with its fields: name, short name, type, value, unit, compliance, min, max, target, comments, section). Same filters as safetychain_search_records; narrow strongly (a record number or one form and a short date range), each record carries many fields. POST /clientapis/v2.0/getRecordsWithFields (a read).
Annotations the server declares
- title: Get record field values
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_record_summaryFast summary of the records matching the filters: first and last date, and how many forms, resources, locations and users are involved.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_record_summary" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Fast summary of the records matching the filters: first and last date, and how many forms, resources, locations and users are involved. Use it to size a request before safetychain_search_records. POST /clientapis/v2.0/getRecordSummary (a read).
Annotations the server declares
- title: Summarize records
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_resourceGet one resource by id (an id from safetychain_list_resources).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_resource" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get one resource by id (an id from safetychain_list_resources). GET /clientapis/resourcemanagement/v1.0/resource/{id}.
Annotations the server declares
- title: Get resource
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_get_supplierGet one supplier by id (an id from safetychain_list_suppliers).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_get_supplier" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get one supplier by id (an id from safetychain_list_suppliers). GET /clientapis/resourcemanagement/v1.0/supplier/{id}.
Annotations the server declares
- title: Get supplier
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_list_categoriesList categories used to group resources of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_list_categories" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List categories used to group resources of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/categories.
Annotations the server declares
- title: List categories
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_list_customersList customers of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_list_customers" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List customers of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/customers.
Annotations the server declares
- title: List customers
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_list_equipmentList equipment of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_list_equipment" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List equipment of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/equipment.
Annotations the server declares
- title: List equipment
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_list_formsList forms (the checklists and data-entry forms operators fill in) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_list_forms" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List forms (the checklists and data-entry forms operators fill in) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/forms.
Annotations the server declares
- title: List forms
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_list_itemsList items (products, ingredients, materials) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_list_items" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List items (products, ingredients, materials) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/items.
Annotations the server declares
- title: List items
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_list_locationsList locations (plants, sites, areas) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_list_locations" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List locations (plants, sites, areas) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/locations.
Annotations the server declares
- title: List locations
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_list_resourcesList resources of every type (customers, equipment, items, suppliers, lists) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_list_resources" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List resources of every type (customers, equipment, items, suppliers, lists) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/resources.
Annotations the server declares
- title: List resources
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_list_suppliersList suppliers of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates.Reads text others writeNo findings
Why it is in this group
- The name "safetychain_list_suppliers" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List suppliers of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/suppliers.
Annotations the server declares
- title: List suppliers
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_search_capasSearch corrective and preventive actions (CAPA, SCAR, CCAR).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_search_capas" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Search corrective and preventive actions (CAPA, SCAR, CCAR). Filters combine with AND. Returns id, name, severity, owner workgroup, status, event and due dates, task counts, location and template type, 50 per page. Use the Id (a GUID) with safetychain_get_capa and the other CAPA tools. POST /clientapis/capamanagement/v1.0/capas (a read: it only searches).
Annotations the server declares
- title: Search CAPAs
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
safetychain_search_recordsSearch submitted records (the headers: record number, compliance, submitted date, location, form and version, resource, who submitted, signed, verifications, ids).Reads text others writeNo findings
Why it is in this group
- The name "safetychain_search_records" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Search submitted records (the headers: record number, compliance, submitted date, location, form and version, resource, who submitted, signed, verifications, ids). Filter by date range, form, location, resource, identifier and compliance. Always narrow by a date range or a name: the tenant can hold millions of records. Pages are not snapshotted: for a stable multi-page read use a closed date range (start and end in the past). Use safetychain_get_record_fields for the field values. POST /clientapis/v2.0/getRecords (a read: it only searches).
Annotations the server declares
- title: Search records
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write29
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- safetychain_get_capa
- safetychain_get_capa_activity
- safetychain_get_capa_attachments
- safetychain_get_capa_history
- safetychain_get_capa_linked_capas
- safetychain_get_capa_linked_records
- safetychain_get_capa_tasks
- safetychain_get_category
- safetychain_get_customer
- safetychain_get_equipment
- safetychain_get_form
- safetychain_get_item
- and 17 more
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.2.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http safetychain https://safetychain.usefulapi.io/mcpclaude mcp add --transport http safetychain https://safetychain.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__safetychain__safetychain_list_customers",
"mcp__safetychain__safetychain_get_customer",
"mcp__safetychain__safetychain_list_locations",
"mcp__safetychain__safetychain_get_location",
"mcp__safetychain__safetychain_list_suppliers",
"mcp__safetychain__safetychain_get_supplier",
"mcp__safetychain__safetychain_list_items",
"mcp__safetychain__safetychain_get_item",
"mcp__safetychain__safetychain_list_equipment",
"mcp__safetychain__safetychain_get_equipment",
"mcp__safetychain__safetychain_list_resources",
"mcp__safetychain__safetychain_get_resource",
"mcp__safetychain__safetychain_list_forms",
"mcp__safetychain__safetychain_get_form",
"mcp__safetychain__safetychain_list_categories",
"mcp__safetychain__safetychain_get_category",
"mcp__safetychain__safetychain_search_capas",
"mcp__safetychain__safetychain_get_capa",
"mcp__safetychain__safetychain_get_capa_tasks",
"mcp__safetychain__safetychain_get_capa_attachments",
"mcp__safetychain__safetychain_get_capa_history",
"mcp__safetychain__safetychain_get_capa_linked_records",
"mcp__safetychain__safetychain_get_capa_linked_capas",
"mcp__safetychain__safetychain_get_capa_activity",
"mcp__safetychain__safetychain_get_record",
"mcp__safetychain__safetychain_search_records",
"mcp__safetychain__safetychain_get_record_fields",
"mcp__safetychain__safetychain_get_record_summary"
],
"ask": [
"mcp__safetychain__safetychain_record_exists"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as safetychain. Review it before you use it.
Capability tags behind 29 rules
- mcp__safetychain__safetychain_list_customers untrusted-input
- mcp__safetychain__safetychain_get_customer untrusted-input
- mcp__safetychain__safetychain_list_locations untrusted-input
- mcp__safetychain__safetychain_get_location untrusted-input
- mcp__safetychain__safetychain_list_suppliers untrusted-input
- mcp__safetychain__safetychain_get_supplier untrusted-input
- mcp__safetychain__safetychain_list_items untrusted-input
- mcp__safetychain__safetychain_get_item untrusted-input
- mcp__safetychain__safetychain_list_equipment untrusted-input
- mcp__safetychain__safetychain_get_equipment untrusted-input
- mcp__safetychain__safetychain_list_resources untrusted-input
- mcp__safetychain__safetychain_get_resource untrusted-input
- mcp__safetychain__safetychain_list_forms untrusted-input
- mcp__safetychain__safetychain_get_form untrusted-input
- mcp__safetychain__safetychain_list_categories untrusted-input
- mcp__safetychain__safetychain_get_category untrusted-input
- mcp__safetychain__safetychain_search_capas untrusted-input
- mcp__safetychain__safetychain_get_capa untrusted-input
- mcp__safetychain__safetychain_get_capa_tasks untrusted-input
- mcp__safetychain__safetychain_get_capa_attachments untrusted-input
- mcp__safetychain__safetychain_get_capa_history untrusted-input
- mcp__safetychain__safetychain_get_capa_linked_records untrusted-input
- mcp__safetychain__safetychain_get_capa_linked_capas untrusted-input
- mcp__safetychain__safetychain_get_capa_activity untrusted-input
- mcp__safetychain__safetychain_get_record untrusted-input
- mcp__safetychain__safetychain_record_exists untrusted-input
- mcp__safetychain__safetychain_search_records untrusted-input
- mcp__safetychain__safetychain_get_record_fields untrusted-input
- mcp__safetychain__safetychain_get_record_summary untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/safetychain/verify?hash=3aeecf35a80cf6cd06c4a8ed274b5404ff1c49d9053c700e0b80ec90497515a2" | jq -e '.changed == false'Pinned hash 3aeecf35a80c, from Oct 26, 2026, 07:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.usefulapi/safetychain/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.usefulapi/safetychain)Source: MCP Registry · repository. Synced Oct 26, 2026, 07:18 UTC.