tteop-mcp
This server is an MCP interface for building, validating, and inspecting TTEOP telemetry envelopes (token telemetry metrics) without persisting data.
tteop_build_envelope: Create a schema-conforming TTEOP envelope from token counts (input/output required; optional tool, model, provider, cache reads/writes, privacy mode, provenance, cohort, operator key) and compute metrics (Yield, Leverage, Velocity, output_fraction, log_leverage).
tteop_validate_envelope: Validate an envelope against the TTEOP JSON Schema and semantic rules, returning schema errors, semantic errors, warnings, and computed metrics; optionally assert a specific privacy profile.
tteop_describe_protocol: Retrieve protocol metadata — versions, privacy modes, provenance levels, forbidden fields, metric definitions/formulas, rounding rules, and spec/schema URLs.
tteop_run_conformance: Execute the conformance suite covering canonical invariants, null semantics, missing-cache handling, build/validate round-trips, forbidden field detection, and banker's rounding, with pass/fail counts and details.
It acts as a thin MCP transport layer over the
tteop-speclibrary, inheriting spec logic without duplicating formulas or schema rules.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tteop-mcpBuild a TTEOP envelope from 800 prompt tokens and 200 completion tokens."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tteop-mcp
Production MCP server for TTEOP — Token Telemetry Evaluation Operator Protocol.
Build, validate, and describe TTEOP telemetry envelopes via the Model Context Protocol. Powered by the official MCP TypeScript SDK v2 and the tteop-spec reference implementation.
New here? Read START-HERE.md. Automated contributors must also read AGENTS.md.
Architecture
This package is a thin MCP transport layer. All protocol logic — envelope construction, metric computation (banker's rounding), schema validation, and semantic rules — is delegated to tteop-spec via its stable JavaScript API:
tteop-spec/builder→buildEnvelope(telemetry, options)tteop-spec/validator→validateEnvelope(envelope, options),computeMetrics(telemetry)
No metric formulas or schema logic are duplicated here. When tteop-spec updates its validator or builder, this server inherits the changes.
Product separation
Package | Role |
| Specification, schemas, validator, conformance suite, builder API |
| Production MCP server (this package) — thin transport over |
SignalAF / SigRank | Hosted benchmarking, leaderboard, pilots, enterprise services |
Related MCP server: Signomy
Install
npm install -g tteop-mcp
# or use directly:
npx tteop-mcpTools
Tool | Description |
| Build a TTEOP v0.1-draft schema-conforming envelope from token counts. Computes Yield (Υ), Leverage (L), Velocity (V), output_fraction (F), and log_leverage (D). |
| Validate an envelope against the JSON Schema and semantic rules. Returns schema errors, semantic errors, warnings, and computed metrics. |
| Get TTEOP protocol metadata: versions, privacy modes, provenance levels, forbidden fields, metric definitions with formulas. |
| Run the conformance suite: canonical vector invariants, null semantics, forbidden field detection, banker's rounding. |
Usage
With Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"tteop": {
"command": "npx",
"args": ["-y", "tteop-mcp"]
}
}
}With MCP Inspector
npx @modelcontextprotocol/inspector npx -y tteop-mcpOpen the browser tab, click Connect, open the Tools tab, and call any tool.
Programmatic
import { spawn } from "node:child_process";
const proc = spawn("npx", ["-y", "tteop-mcp"], { stdio: ["pipe", "pipe", "pipe"] });
// Send JSON-RPC 2.0 messages to proc.stdin, read responses from proc.stdoutDevelopment
# Install the exact locked dependency graph
npm ci
# Optional: test unpublished local tteop-spec changes after the clean install.
# This overrides node_modules locally and is never used by CI or releases.
cd ../otep-spec && npm link && cd ../tteop-mcp && npm link tteop-spec
# Run tests
npm test # real MCP client test
npm run test:packaged # packaged tarball test
npm run test:release # package/lockfile/registry version agreement
npm run test:all # complete local release gate
# Run with MCP Inspector
npm run inspect
# Start the server
npm startAcceptance criteria
npx tteop-mcpwaits for an MCP connectioninitializesucceedstools/listreturns complete schemas (4 tools)Every tool can be called through MCP Inspector
Invalid token values return structured MCP errors (
isError: truewith validation message)stdout contains protocol messages only
CI runs an actual MCP client against the packaged tarball
Distribution status and release order
tteop-mcp@0.2.0 is currently published to npm and listed in the MCP Registry and Glama. Release 0.2.1 repairs source/package provenance, upgrades the exact protocol dependency to tteop-spec@0.1.5-draft, and adds release hardening.
The required release order is:
Confirm
tteop-spec@0.1.5-draftis available from npm.Merge the
tteop-mcp@0.2.1release commit with every required check green.Run the manual Release npm package workflow. It publishes with npm provenance and creates GitHub release
v0.2.1at the same commit.Confirm
npm view tteop-mcp@0.2.1 gitHeadequals the GitHub release commit.Publish the matching
server.jsonto the MCP Registry:mcp-publisher login mcp-publisher publishConfirm the MCP Registry and Glama show version
0.2.1and all four tools.From a clean directory, run
npx -y tteop-mcp@0.2.1 --versionand a real MCP client invocation.
Never publish from an uncommitted working tree. Package version, lockfile, server.json, Git tag, GitHub release, npm gitHead, and MCP Registry version must identify the same release.
License
Apache-2.0
Available Tools
4 toolstteop_build_envelopeA
Build a TTEOP v0.1-draft schema-conforming telemetry envelope from token counts. Computes Yield (Υ), Leverage (L), Velocity (V), output_fraction (F), and log_leverage (D). No data is submitted or persisted. Returns the complete envelope as JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | AI tool name (e.g., 'claude-code', 'cursor', 'copilot'). | |
| input | Yes | Fresh input tokens (non-negative integer, required). | |
| model | No | Model identifier (e.g., 'claude-sonnet-4', 'gpt-4o'). | |
| output | Yes | Output tokens (non-negative integer, required). | |
| provider | No | Provider name (e.g., 'anthropic', 'openai', 'google'). | |
| cohort_id | No | Cohort identifier for private-managed-cohort mode. Requires operator_key. | |
| cache_read | No | Cache-read tokens, or null when unavailable. | |
| cache_write | No | Cache-write tokens, or null when unavailable. | |
| operator_key | No | Pseudonymous operator identifier. Must not contain real-world identity. | |
| privacy_mode | No | Privacy mode. Default: public-pseudonymous. | |
| provenance_level | No | Provenance level. Default: self-reported. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: computation of Yield, Leverage, Velocity, output_fraction, and log_leverage; no data submission or persistence; and a complete JSON envelope return value. It does not cover edge cases or error behavior, but the important side-effect and output properties are explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then computed metrics, then side-effect behavior, then return format. Every sentence contributes distinct information with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters, no output schema, and no annotations, the description covers the essential context: what is built, what is computed, that nothing is persisted, and that the result is a complete JSON envelope. Parameter details are fully handled by the schema descriptions; only minor gaps around required-parameter behavior remain, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eleven parameters. The description adds useful context by framing inputs as token counts and naming the computed metrics, but it does not add per-parameter semantics beyond the baseline provided by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names a specific verb (Build), a specific resource (TTEOP v0.1-draft schema-conforming telemetry envelope), and concrete inputs (token counts). It clearly distinguishes from siblings like tteop_validate_envelope by describing a build action rather than a validation action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: construct an envelope from token counts. It also provides helpful context by stating that no data is submitted or persisted, but it never explicitly names when to use this tool instead of tteop_validate_envelope or tteop_run_conformance, nor gives exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tteop_describe_protocolA
Get TTEOP protocol metadata: version, supported versions, privacy modes, provenance levels, forbidden fields, metric definitions (formulas, symbols, rounding), and schema/spec URLs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. The verb 'Get' makes the read-only nature clear, and the enumerated metadata content does not suggest side effects or mutations. It could add explicit statements about side-effect freeness or error behavior, but for a zero-parameter metadata getter the transparency is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence front-loads the core purpose and then uses a colon-delimited list to enumerate the exact metadata contents. Every element earns its place with no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must communicate return values; it does so comprehensively by listing version, supported versions, privacy modes, provenance levels, forbidden fields, metric definitions, and schema/spec URLs. For a zero-parameter read-only metadata tool, no critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema confirms an empty properties object. The description adds value by specifying the resolved metadata fields, which is the only meaningful semantic content an agent needs for this no-argument tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a clearly defined resource ('TTEOP protocol metadata') and enumerates the exact contents returned. It is immediately distinguishable from sibling tools like tteop_validate_envelope or tteop_build_envelope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for retrieving protocol definitions rather than validating, building, or running conformance checks. However, it does not explicitly state when not to use it or name alternatives, so some inference is left to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tteop_run_conformanceA
Run the TTEOP conformance suite: canonical vector invariants, zero-input/zero-output null semantics, missing-cache handling, build-validate round-trip, forbidden field detection, and banker's rounding. Returns pass/fail counts and detailed results.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses what the tool runs and what it returns ('pass/fail counts and detailed results'), covering the main behavioral contract. It does not mention side effects or failure modes, but for a zero-parameter test runner this is a solid disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, purpose-led, with a compact colon-delimited list of coverage areas. No filler, no repetition of the tool name, and every listed item adds specificity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no annotations, and no output schema, the description still tells the agent what the suite covers and what the caller receives (pass/fail counts and detailed results). Nothing essential is missing for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so the description needs to add no per-parameter meaning. The baseline for a zero-parameter tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run the TTEOP conformance suite') and enumerates the checks covered: canonical vector invariants, zero-input semantics, missing-cache handling, round-trip, forbidden field detection, and banker's rounding. This clearly distinguishes it from sibling tools that validate, build, or describe a single envelope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance and no named alternatives. The intended scope ('conformance suite') and sibling names (tteop_validate_envelope, tteop_build_envelope, tteop_describe_protocol) make the use case inferrable, but the description itself leaves that routing implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tteop_validate_envelopeA
Validate a TTEOP v0.1-draft telemetry envelope against the JSON Schema and semantic rules. Returns validation status, schema errors, semantic errors, warnings, and computed metrics if valid.
| Name | Required | Description | Default |
|---|---|---|---|
| envelope | Yes | The TTEOP telemetry envelope to validate (as a JSON object). | |
| expected_profile | No | If set, asserts the envelope's privacy mode matches this profile. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It states what the tool returns ('validation status, schema errors, semantic errors, warnings, and computed metrics') and notes the conditional 'if valid'. This is substantial, though it could also clarify side effects or profile-matching behavior in more depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one efficient sentence that front-loads the main verb and resource and then lists the output contract without filler. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, listing the return components in the description is essential and is covered. The tool is moderately simple (2 params, 1 nested object, 100% schema coverage), and while the description doesn't enumerate specific status values or exact metrics, it provides enough context for an agent to call and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'envelope' and 'expected_profile' already described in the input schema. The description adds no additional parameter-specific meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the exact action ('Validate'), the exact resource ('TTEOP v0.1-draft telemetry envelope'), and the criteria ('against the JSON Schema and semantic rules'). This clearly distinguishes it from siblings like tteop_build_envelope and tteop_describe_protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: pass an envelope object to validate it. However, it does not mention when to prefer this over tteop_run_conformance or tteop_describe_protocol, and gives no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.2.0- First observed
tteop_build_envelope - First observed
tteop_describe_protocol - First observed
tteop_run_conformance - First observed
tteop_validate_envelope
TDQS
Scored across 4 tools
Each tool targets a distinct operation: building an envelope, validating a single envelope, describing protocol metadata, and running the conformance suite. Even though validate and conformance both involve validation, their scope is clearly separated and descriptions make the distinction obvious.
All tool names share the tteop_ prefix and follow a consistent snake_case verb_noun pattern: validate_envelope, describe_protocol, run_conformance, build_envelope. This makes the tool set highly predictable.
Four tools is well-scoped for a focused protocol-support server. Each tool serves a clear core workflow—build, validate, describe, and test—without unnecessary bloat or missing essentials.
The set covers the primary lifecycle for TTEOP envelopes: construction, validation, protocol introspection, and conformance testing. A minor gap is the lack of a dedicated parse/decode tool, but build and validate together cover the main practical workflows.
Maintenance
Related MCP Connectors
Model Context Protocol server for Studex tools, notifications, and profile integrations
Schema modeling in JSON, JSON-LD, and other formats with CoreModels platform.
Model Context Protocol server for todo.vu task management and time tracking.
MCP Spec Compliance MCP — audits any MCP server.json against the official Model Context Protocol
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables type-safe, bidirectional communication with Model Context Protocol services, allowing centralized management of model contexts over HTTP.209MIT
- AlicenseAqualityAmaintenanceDescription Governed agent city-state. Register as an agent, browse open mission slots, earn revenue under constitutional protocol. Every action creates a SHA-256 provenance seed. Powered by MO§ES™.6231MIT
- AlicenseNot gradedqualityDmaintenanceProvides a standardized interface for interacting with Trello's tools and services through the Model Context Protocol.MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with DigitalOcean services and tools through a unified API via the Model Context Protocol.2MIT