finos-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FINOS_MCP_AUDIT_PATH | No | Path to the audit log file. If not set, audit logs are written to stderr. | |
| FINOS_MCP_RATE_BURST | No | Allowed burst size for the rate limiter. | |
| FINOS_MCP_RATE_CALLS | No | Number of calls allowed per rate limiting window. | |
| FINOS_MCP_SEARCH_MODE | No | Set to 'lexical' to force lexical-only search mode, regardless of installed extras or model availability. | |
| FINOS_MCP_RATE_WINDOW_S | No | Rate limiting window in seconds. | |
| FINOS_MCP_AUDIT_RAW_ARGS | No | Set to '1' to log raw arguments in the audit log. By default, only a SHA-256 hash of the arguments is logged. | 0 |
| FINOS_MCP_EMBEDDING_MODEL | No | Path or model identifier for the local embedding model used in hybrid search. If not set, the default model 'minishlab/potion-base-4M' is downloaded from Hugging Face on first use. | |
| FINOS_MCP_MAX_INPUT_BYTES | No | Maximum serialized input size in bytes. Defaults to 64 KiB (1 MiB for CDM validation). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_risksA | List AIGF risks. Filter by type (RC = regulatory and compliance, OP = operational, SEC = security) or document status. Returns ids you can pass to get_risk. |
| get_riskA | Get one AIGF risk by id (AIR-SEC-010, ri-10, 10, or its title), with the controls that mitigate it, related risks, and external references. Set include_sections=false for a compact record without the full text. |
| list_controlsA | List AIGF controls (the framework calls them mitigations). Filter by type (PREV = preventative, DET = detective) or status. Returns ids for get_control. |
| get_controlA | Get one AIGF control by id (AIR-PREV-020, mi-20, 20, or its title), with the risks it mitigates, related controls, and crosswalk references (NIST SP 800-53, ISO 42001, ...). Set include_sections=false for a compact record. |
| map_risks_to_controlsA | Map risks to the controls that mitigate them. Pass explicit risk_ids (up to 25), a free-text query (the top k matching risks are used), and/or up to 5 queries (each contributing its own top k matches, unioned with everything else) -- useful for "both X and Y" questions where a single query blurs together two distinct concepts. Controls are ordered by how many of the given risks they cover; control_type (PREV or DET) restricts the result. Reports uncovered risks and any inputs that did not resolve. |
| map_control_to_externalA | Crosswalk one control to external frameworks: NIST SP 800-53 r5, NIST AI 600-1, ISO 42001, EU AI Act, OWASP LLM/ML/ASI, FFIEC, IOSCO, SR 11-7 and others. Optionally restrict to the named frameworks (see list_reference_frameworks). |
| search_frameworkA | Search risks and controls with matching sections and citable source URIs. For an unscoped question clearly asking for risks or for controls, rank those record types first while retaining the other type as a fallback. This is a stable partition of the original relevance-ranked results, not a new relevance score. Questions asking for both kinds stay mixed; explicit scope always wins. |
| search_statusA | Report search_framework's active retrieval mode: whether it is BM25-only
(lexical) or fused with dense semantic search (hybrid), and why -- e.g. the
|
| list_reference_frameworksA | List the external reference frameworks the AIGF crosswalks to, with entry counts and how many risks and controls cite each. |
| find_by_external_referenceA | Reverse crosswalk: find the AIGF risks and controls that cite an external reference, e.g. key='sa-9' (NIST SP 800-53), 'llm01-2025' (OWASP LLM Top 10), 'c3-s2-a15' (EU AI Act), 'A-6-2-6' (ISO 42001). Matching is case-insensitive and ignores punctuation; optionally restrict to one framework name from list_reference_frameworks. |
| server_infoA | Describe this server: standard version, upstream provenance, exposed counts, latency, policy. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| assess_use_case | Identify applicable AIGF risks and the controls that mitigate each, citing ids. |
| control_gap_analysis | Given controls in place, find risks left uncovered and suggest controls. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| aigf_index |
TDQS
Scored across 11 tools
Most tools target clearly distinct resources and actions (list_risks vs get_risk vs list_controls vs get_control). The main overlap is between search_framework and the list_* tools, and between map_control_to_external and find_by_external_reference, but the descriptions make the boundaries (forward vs reverse crosswalk, free-text search vs filtered listing) reasonably clear.
Strong verb_noun pattern: list_risks, get_risk, list_controls, get_control, map_risks_to_controls, map_control_to_external, find_by_external_reference. Minor deviations are search_status and server_info, which describe state rather than an action but are still readable and predictable.
11 tools is well within the ideal 3-15 range for a reference-framework server. Each tool earns its place: search, per-type listing and retrieval, bidirectional mapping, and reference listing/info all cover distinct needs.
Coverage is strong for a read-only reference surface: search, list/get for both risks and controls, risk-to-control mapping, control-to-external crosswalk, reverse crosswalk, and framework listing. The main gap is that external crosswalking is only directly exposed for controls (map_control_to_external), with risk-side external mapping only inferable via the reverse lookup.