qrp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| scan_repoA | Inventory the cryptography inside one local directory tree, file by file. Reads source, configuration (nginx.conf, sshd_config, .ini, .toml), CI pipelines,
Terraform and Kubernetes manifests under Use this to answer what a specific project on this machine actually uses. Do not
use it to ask whether this server knows a given algorithm, or to explain how one is
classified without scanning anything -- Coverage is reported as a fraction with a base. Cost scales with the size of the tree, so a large monorepo takes proportionally longer; there is no cache and no partial mode. Quoted lines are masked by default. Reading happens on this machine, but this
result does not stay on it: it is returned to a model, which is a place the
scanned line has not been before. A secret sharing a line with a finding -- a
token in the call that names the cipher -- would travel with it. Masking keeps
what a reader needs (the algorithm, the file, the line number, the shape of the
call) and removes what nobody asked for. Pass |
| list_algorithmsA | List every algorithm family this server can recognise, and how each is classified. Returns the whole table: family name, classification (classical and quantum-vulnerable, post-quantum, symmetric, hash, or deprecated) and the kind of use it stands for. Reads no files and takes no arguments. Use this to check coverage before trusting a scan -- whether a scheme the project
depends on is one this server knows at all -- or to explain a classification without
scanning. To find what a particular directory uses, use An algorithm absent from this table is reported as |
| export_cbomA | Scan one directory and return a CycloneDX 1.6 CBOM that carries its own coverage. Same reading as What the document carries beyond the components: The coverage block travels as The serial number is derived from the target, the two pins and a digest of the findings, so two runs of the same code over the same corpus that find the same things share it and a different result does not. The timestamp and coverage window record when each run happened. The matched text in |
| compare_coverageA | Say whether two scans produced numbers that can be compared at all. Two coverage percentages can differ because the estate moved, because the instrument moved, or because the corpus was collected differently, and the percentages show none of the three. This reads the pins and conditions in both blocks and answers with one of three verdicts.
Use it before putting two coverage figures in one table. Do not use it to compare findings; it reads conditions, not results. |
| prove_closureA | Say which findings a change actually closed, by comparing two saved scans of one tree. First it decides whether the two runs can be compared for closure at all: the same instrument commit, version, rules, file types and exclusions, both trees pinned to a commit and clean, both results quoting lines at the same level. The trees themselves may differ -- that difference is what is measured. If the runs cannot be compared, nothing is reported as closed and the repair is named. Only then does it match every occurrence without its line number: To keep the verdict as a file that names the two scans it judged, run
Use it after a fix, to evidence the fix. Do not use it to compare coverage
figures between two estates -- |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool targets a clearly distinct operation, and the descriptions explicitly state when to use one over another (e.g. scan_repo vs list_algorithms vs export_cbom, prove_closure vs compare_coverage). The boundaries are sharpened even further by explicit 'do not use this for X, use Y' guidance.
All five names follow a consistent snake_case verb_noun pattern (scan_repo, prove_closure, compare_coverage, export_cbom, list_algorithms). No mixing of conventions or vague bare verbs.
Five tools is well-scoped for a crypto-inventory/CBOM server: each covers a distinct lifecycle step (inventory, diff-for-closure, coverage comparison, export, reference table). Nothing is redundant and nothing feels thin.
The core lifecycle is covered: reference table, single-tree scan, output to a portable document, closure proof, and coverage comparison. Minor gaps exist (e.g. no explicit config/scan management, no handling of remote endpoints or certificate stores), but those are deliberately declared out of scope rather than missing.