io.github.Davmunrey/trazum
NPM · @TRAZUM/MCP · SCANNED SEP 21
Trazum as an MCP server: let an agent price and budget its own prompts before it sends them.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 0 of 1 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to Davmunrey/Trazum). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 2 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability63
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2042 tokens (~291/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
- Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 97% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.Davmunrey/trazum MCP server?
io.github.Davmunrey/trazum runs locally as an npm package, launched with npx -y @trazum/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @trazum/mcp
claude mcp add davmunrey-trazum -- npx -y @trazum/mcp
{
"mcpServers": {
"davmunrey-trazum": {
"command": "npx",
"args": [
"-y",
"@trazum/mcp"
]
}
}
} {
"servers": {
"davmunrey-trazum": {
"command": "npx",
"args": [
"-y",
"@trazum/mcp"
]
}
}
} codex mcp add davmunrey-trazum -- npx -y @trazum/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"davmunrey-trazum": {
"type": "local",
"command": [
"npx",
"-y",
"@trazum/mcp"
],
"enabled": true
}
}
} openclaw mcp add davmunrey-trazum --command npx --arg -y --arg @trazum/mcp
mcp_servers:
davmunrey-trazum:
command: "npx"
args: ["-y", "@trazum/mcp"] {
"McpServers": {
"davmunrey-trazum": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@trazum/mcp"
]
}
}
} assistant mcp add davmunrey-trazum -t stdio -c npx -a -y @trazum/mcp
{
"mcpServers": {
"davmunrey-trazum": {
"command": "npx",
"args": [
"-y",
"@trazum/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 +51
- Injection markers: unverified → pass ▲ security
- Known CVEs: unverified → pass ▲ security
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Stability: unverified → 0.80 ▲ functional
- Dependency health: unverified → 1.00 ▲ functional
- 18 Sept 26 −50
- Stability: 0.73 → unverified ▼ security
- Known CVEs: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Dependency health: 1.00 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 2.4.0 → 2.4.1 functional
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +38
- Injection markers: unverified → pass ▲ security
- Tool coverage: unverified → 100 ▲ functional
- Stability: unverified → 0.60 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- 12 Sept 26 −37
- Stability: 0.53 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 2.3.0 → 2.4.0 functional
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.
- 9 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Analysed npm/@trazum/mcp@2.4.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | Davmunrey/Trazum |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/Davmunrey/Trazum/.github/workflows/release.yml@refs/heads/main |
| Rekor log index | 2884733169 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:62ce4f8562dc73dfea50b728d9561cb5fbd7f9400276d81d09bd6cd6f6c15235291dd6da0d8b9512653e91df145bd0d9a2daf0abcb08bd8844a0d8e7b |
Background: How many MCP packages publish verified provenance →
Dependencies 1 package
| Packages resolved | 1 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
check_prompt Check a prompt against a token budget ~145
Answers whether a prompt fits a maximum, and if not, whether optimising it would. maxTokens comes from the budgets block of trazum.config.json, matched against the prompt's path; read it yourself, since this server never opens a file. Without a budget somebody set there is nothing to check and this is not the tool to call. Offline and free: no model is called.
| Name | Type | Req | Description |
|---|---|---|---|
| level | string | – | safe leaves meaning untouched; aggressive also rewords, and wants reading |
| maxTokens | integer | yes | The budget. Required: a check with no maximum is not a check. |
| prompt | string | yes | The prompt text itself. This server never reads files. |
No output schema declared.
No examples provided.
list_models Models Trazum can price, and their rates ~31
Input and output price per million tokens, context window and cacheable minimum, for every model in the bundled catalogue.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
optimize_prompt Optimise a prompt and price the difference ~133
Applies Trazum's deterministic rules to a prompt and returns the shorter text, the token counts either side, what the difference is worth per month, and any advisories. Offline and free: no model is called.
| Name | Type | Req | Description |
|---|---|---|---|
| avgOutputTokens | integer | – | – |
| callsPerMonth | integer | – | Used only to scale the figures |
| level | string | – | safe leaves meaning untouched; aggressive also rewords, and wants reading |
| model | string | – | Model id used for pricing. Call list_models for what is known. |
| prompt | string | yes | The prompt text itself. This server never reads files. |
No output schema declared.
No examples provided.
position Where the month stands, measured — no forecast ~216
States the month's measured position against every ceiling you pass: monthly budget, per-day limit, per-label limits. Measured from the log text alone, priced record by record, with the denominator on every figure — days measured against days elapsed. The distance line is division on the past, labelled as such, and absent under the seven-day floor, on an over, and on a zero rate: this tool never forecasts. Ceilings the log cannot measure are named with the reason instead of skipped. Pass the log text itself: this server never reads files, and session keys are never shown.
| Name | Type | Req | Description |
|---|---|---|---|
| limits | object | – | The limits policy from trazum.config.json — {"dayUsd": n, "sessionUsd": n, "byLabel": {"name": n}}. Validated like the config file itself. |
| log | string | yes | The usage log text, one JSON object per line. Never a file path. |
| monthlyUsd | number | – | The calendar-month budget, in dollars — spend.monthlyUsd from the config. |
No output schema declared.
No examples provided.
profile_usage Where the money went, from a usage log ~555
Reads a usage log — one JSON object per line, each with a "model" and the "usage" object the API returned — and says where the money went: the spend split, per label and per model, whether caching paid for itself, and which levers would actually move the bill. These are the provider's own billed token counts, not estimates. Pass the log text itself: this server never reads files. Add "label", "session" and "ts" fields to the records to unlock the per-workload findings, conversation growth, the period the log covers, and whether the cache TTL fits how fast the turns arrive; the session key is grouped by and never shown.
| Name | Type | Req | Description |
|---|---|---|---|
| label | string | – | Profile only the calls carrying this label — the drill-down once the full report named a suspect. A label matching nothing is an error naming the labels that exist. |
| log | string | yes | The usage log text, one JSON object per line. Never a file path. |
| previous_log | string | – | A previous usage log to compare against, as text — never a file path. Positive means the bill grew. Drivers of the change are named per label and per model, appeared and vanished workloads included;… |
| pricing_overlay | string | – | The same JSON document a --pricing overlay file holds, passed as text — never a file path. Adds models the bundled catalogue does not know and overrides prices for ones it does; every figure in the r… |
| since | string | – | Profile only calls at or after this moment: a UTC day (2026-08-14) or a full ISO 8601 timestamp. Calls with no "ts" cannot be placed and are excluded, counted out loud — never dropped silently. |
| until | string | – | Profile only calls up to this moment; a bare date includes that whole UTC day. A window matching nothing is an error naming what the log does cover. |
| what_if | string | – | Price these exact calls on another model id. The same token counts at a different rate card — multiplication, not advice: it says nothing about whether that model could do the work. Calls larger than… |
No output schema declared.
No examples provided.
prompt_writer Interviews you, then writes the prompt ~253
Asks what a good prompt needs and assembles one from your answers. Call it with the answers you have; it returns the next question worth asking, what is still missing, and the prompt once the required answers are in. Nothing is generated — the questions are fixed and the words in the prompt are yours, so the same answers always produce the same text. An answer of null is a decline, which is an answer: it is recorded and the follow-up it would have opened is not asked. The draft carries what it costs (estimated, and it says so), whether it fits a budget you state, and what trazum optimize can still recover from it — which should be nothing. It does not claim the prompt is good: that is a judgement about text nobody has run.
| Name | Type | Req | Description |
|---|---|---|---|
| answers | object | yes | What you know so far, keyed by question id. Start with {} to be asked the first one. A value of null declines that question. Unknown ids are refused rather than ignored. |
| avgOutputTokens | integer | – | Output tokens you expect back per call, for the same estimate. |
| callsPerMonth | integer | – | Calls per month, for the cost estimate. Nothing is priced without it. |
No output schema declared.
No examples provided.
spend_guard May I spend this? — with the cheaper way if not ~643
Call this before making a model call, when a budget exists and you do not know whether this call fits inside it. Answers yes, no, or cannot-tell. Where the numbers come from: the ceilings are in trazum.config.json in the working directory (spend.maxUsd, spend.monthlyUsd, the limits block), and the spend so far is in the usage log the host already writes. Read both yourself and pass the figures: this server never opens a file. Without a ceiling somebody set the answer is cannot-tell, never a yes nobody measured. A refusal carries the cheaper ways to make the same call (a smaller model the prompt still fits in, a batch window), each priced for this call and each naming what it assumes. The budget consumed is measured from real billed usage you pass in; the cost of your call is an estimate of something that has not happened, and the answer keeps the two apart and says which the verdict rests on. Nothing is called and nothing is spent to produce this answer.
| Name | Type | Req | Description |
|---|---|---|---|
| batchEligible | boolean | – | Whether this work can wait for a batch window. Only you know that, so batch alternatives are offered only when you say so. |
| consumedUsd | number | – | Measured spend so far, in dollars — from a bill, never a guess. Omit it and the answer is cannot-tell rather than a yes nobody measured. |
| inputTokens | integer | yes | Input tokens the call would send, including anything cached. |
| label | string | – | The workload this call belongs to, for the per-label ceiling. |
| limitUsd | number | – | The budget this is judged against. Omit it and the answer is cannot-tell: this tool reports a position against a policy a human set, and never invents one. |
| limits | object | – | The limits policy from trazum.config.json — {"dayUsd": n, "sessionUsd": n, "byLabel": {"name": n}}, positive dollars. Judged by the same function the gateway and trazum serve use, so the three doors… |
| model | string | yes | Model id the call would go to. Call list_models for what is known. |
| outputTokens | integer | – | Output tokens you expect back. Left at zero, the answer prices input only and says so by carrying the figure you gave. |
| position | object | – | Measured spend per scope, from your own usage log — never a guess. A scope you omit is unmeasured and its ceiling answers cannot-tell, not "under". |
| session | string | – | The conversation this call belongs to, for the per-session ceiling. Used to judge and never echoed back. |
| waive | array | – | The waive list from trazum.config.json — [{"gate": "limits.sessionUsd", "reason": "...", "until": "YYYY-MM-DD"}]. A waived ceiling still reports its measurement, but a crossed one answers yes with th… |
No output schema declared.
No examples provided.
What is the io.github.Davmunrey/trazum MCP server?
io.github.Davmunrey/trazum is an MCP server listed in the public MCP registry as io.github.Davmunrey/trazum. Trazum as an MCP server: let an agent price and budget its own prompts before it sends them. This page covers its npm package (@trazum/mcp).
Is the io.github.Davmunrey/trazum MCP server safe to use?
io.github.Davmunrey/trazum scores 91 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.Davmunrey/trazum MCP server expose?
io.github.Davmunrey/trazum exposes 7 tools: spend_guard, check_prompt, optimize_prompt, profile_usage, position, and 2 more. Their descriptions and schemas cost roughly 1,976 tokens of context every time the server is loaded.
Is the io.github.Davmunrey/trazum MCP server still maintained?
io.github.Davmunrey/trazum is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.Davmunrey/trazum MCP server under?
io.github.Davmunrey/trazum declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.