VICP Registry MCP
A free, read-only MCP server providing live access to the U.S. Court of Federal Claims Vaccine Injury Compensation Program database. It enables AI agents to search 13,000+ case decisions, retrieve full court document text, query compensation statistics, and investigate attorney or special master track records without authentication.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://vicp-registry.org/mcpWhat its tools do
10 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to vicp-registry.org ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search vaccine injury cases by vaccine, condition, or outcome
- Retrieve full text of court decisions for specific package IDs
- Query compensation statistics grouped by vaccine or year
- Search attorney and special master case histories
Source and maintenance
Protocol and capabilities
- Server
- VICP Registry 1.28.1
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 10 advertised
- Resources
- 0 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
10 advertised
search_cases
Search VICP cases with structured filters. - query: free text matched against petitioner identifier, condition, package id, caption name and the AI case summary. - vaccine: canonical vaccine name (use get_filters() for valid values, e.g. "Influenza (flu)", "DTaP/DPT", "MMR", "COVID-19", "Hepatitis B"). - condition_category / outcome: exact values from get_filters(). - decision_type: how the case was decided (stipulation, proffer, reasoned, reasoned_damages, procedural, unclear). - pediatric_only uses the broad pediatric cohort definition (is_minor OR is_minor_inferred OR age<18) — strict age-only filtering undercounts pediatric cases substantially. - dates are ISO strings (YYYY-MM-DD); awards are USD integers. - sort: decision_date_desc|decision_date_asc|filed_asc|filed_desc|award_desc|award_asc - Returns total match count plus one page of compact case records with canonical URLs. Use get_case(package_id) for the full record.
{
"type": "object",
"title": "search_casesArguments",
"properties": {
"sort": {
"type": "string",
"title": "Sort",
"default": "decision_date_desc"
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Query",
"default": null
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0
},
"outcome": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Outcome",
"default": null
},
"vaccine": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Vaccine",
"default": null
},
"attorney": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Attorney",
"default": null
},
"filed_to": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Filed To",
"default": null
},
"is_death": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Is Death",
"default": null
},
"max_award": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Max Award",
"default": null
},
"min_award": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Min Award",
"default": null
},
"decided_to": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Decided To",
"default": null
},
"filed_from": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Filed From",
"default": null
},
"decided_from": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Decided From",
"default": null
},
"decision_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Decision Type",
"default": null
},
"autism_related": {
"type": "boolean",
"title": "Autism Related",
"default": false
},
"pediatric_only": {
"type": "boolean",
"title": "Pediatric Only",
"default": false
},
"special_master": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Special Master",
"default": null
},
"condition_category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Condition Category",
"default": null
}
}
}get_case
Get the complete curated record for one case by package_id. Includes the AI-assisted case summary, all extracted fields, attorney and special master, plus links: canonical page, plain-text source bundle, and per-document PDF links where available.
{
"type": "object",
"title": "get_caseArguments",
"required": [
"package_id"
],
"properties": {
"package_id": {
"type": "string",
"title": "Package Id"
}
}
}get_case_text
Get the staged plain text of a case's public court documents. Long decisions can exceed 100 pages; the text is returned in chunks. Use offset_chars from the previous response's next_offset to page through. max_chars is capped at 50,000.
{
"type": "object",
"title": "get_case_textArguments",
"required": [
"package_id"
],
"properties": {
"max_chars": {
"type": "integer",
"title": "Max Chars",
"default": 25000
},
"package_id": {
"type": "string",
"title": "Package Id"
},
"offset_chars": {
"type": "integer",
"title": "Offset Chars",
"default": 0
}
}
}get_filters
List all valid filter values: canonical vaccine names (with case counts), condition categories, outcomes, special masters, and the dataset's date range. Call this before filtering so you use real values instead of guessing.
{
"type": "object",
"title": "get_filtersArguments",
"properties": {}
}get_statistics
Aggregate statistics over the case corpus, optionally filtered. group_by: vaccine | condition | outcome | year | special_master Returns per-group: total cases, compensated count, compensation rate, death count, and median award among compensated cases (awards over $10M excluded from the median due to a known unit-extraction bug). IMPORTANT framing: these describe the VICP case-record dataset, not vaccine-safety rates in the general population.
{
"type": "object",
"title": "get_statisticsArguments",
"properties": {
"vaccine": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Vaccine",
"default": null
},
"group_by": {
"type": "string",
"title": "Group By",
"default": "vaccine"
},
"is_death": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Is Death",
"default": null
},
"pediatric_only": {
"type": "boolean",
"title": "Pediatric Only",
"default": false
},
"condition_category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Condition Category",
"default": null
}
}
}search_attorneys
Search petitioner attorneys and firms by name. Returns per-attorney aggregate stats: case count, compensation rate, main vaccines, and firm. Useful for 'who has handled X cases' questions.
{
"type": "object",
"title": "search_attorneysArguments",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
},
"query": {
"type": "string",
"title": "Query"
}
}
}get_attorney
Get one attorney's profile: bio (when available), aggregate outcomes, and their most recent cases. Name is matched case-insensitively.
{
"type": "object",
"title": "get_attorneyArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 30
}
}
}get_special_master
Decision patterns for one special master: outcome breakdown, top vaccines/conditions in their docket, and recent cases.
{
"type": "object",
"title": "get_special_masterArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20
}
}
}search
Search VICP vaccine-injury cases by free text. Returns result ids for use with fetch. (Alias of search_cases for deep-research clients; prefer search_cases when structured filters are available.)
{
"type": "object",
"title": "searchArguments",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"title": "Query"
}
}
}fetch
Fetch the full record + source text of one case by its id (package_id). (Deep-research companion to search.)
{
"type": "object",
"title": "fetchArguments",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"title": "Id"
}
}
}Prompts
0 advertised
Resources
0 advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 2 of 2 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1305 ms
- 95th percentile latency
- 1305 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1305 ms · metadata changed · 10 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http vicp-registry-mcp https://vicp-registry.org/mcpCodex
codex mcp add vicp-registry-mcp --url https://vicp-registry.org/mcpCursor
{
"mcpServers": {
"vicp-registry-mcp": {
"url": "https://vicp-registry.org/mcp"
}
}
}Cline
{
"mcpServers": {
"vicp-registry-mcp": {
"type": "streamableHttp",
"url": "https://vicp-registry.org/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"vicp-registry-mcp": {
"type": "http",
"url": "https://vicp-registry.org/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http vicp-registry-mcp https://vicp-registry.org/mcpClaude Desktop
https://vicp-registry.org/mcpWindsurf
{
"mcpServers": {
"vicp-registry-mcp": {
"serverUrl": "https://vicp-registry.org/mcp"
}
}
}Let your agent find its tools
Find servers like VICP Registry MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run VICP Registry MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.