Server definition
- Hash
- sha256:f3e6dd76e6a3c0a57e343fbf7098b40c640d214a60fd5652124b18012e9cb6ad
- What it is
- What a remote MCP server returned when asked what it offers: 6 tools
The blob, as servednamed by its sha256
{
"instructions": "James Ross runs an agent-ready knowledge architecture practice: making an organisation's knowledge legible to AI agents, so an agent can work on it without a human re-explaining the business every session. These six tools expose the practice's own instruments. Full-text search across the published architecture writing (search_architecture), covering the patterns, the evaluation method, the learn track and the teardowns. The 18-pattern architecture library (lookup_pattern). The workspace-maturity and organisational-readiness assessments (assess_workspace). The context-position cost model (price_context_read), and the redaction pre-flight scanner (check_redaction). If you needed a capability that isn't here, say so with request_capability. The same searchable corpus is also published as resources under the architecture:// scheme, so resources/list and resources/read give you the section text directly. Calls are logged anonymously: the tool name, a timestamp, and a minimal derived summary of the arguments, kept so the practice can see which capabilities agents actually reach for. There is no account, no identifier and no session. check_redaction is the strict case. It logs finding counts only, never the text you scanned and never what matched. Send no secrets or personal data to any tool here.",
"tools": [
{
"description": "Score an agent workspace across six dimensions: canonical knowledge, memory and context economics, verification and oversight, safety and permissions, telemetry and cost, provenance and delegation. Two variants: \"practitioner\" takes 18 answers (a single operator's workspace), \"org\" takes 12 (an organisation's agent readiness). Each answer is an integer 0-3 in question order, where 0 is the least mature option offered and 3 the most. Returns per-dimension scores, an overall percentage, a maturity band, and the two weakest dimensions with the gap that matters there. The question text lives at https://jamesross.ai/tools/maturity-check (practitioner) and https://jamesross.ai/tools/agent-readiness (org). Read it before answering on someone's behalf.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"answers": {
"description": "Answers in question order: 18 integers for \"practitioner\", 12 for \"org\". Each is 0-3.",
"items": {
"maximum": 3,
"minimum": 0,
"type": "integer"
},
"type": "array"
},
"variant": {
"description": "\"practitioner\" for the 18-question workspace check, \"org\" for the 12-question organisational readiness check.",
"enum": [
"practitioner",
"org"
],
"type": "string"
}
},
"required": [
"variant",
"answers"
],
"type": "object"
},
"name": "assess_workspace",
"outputSchema": null
},
{
"description": "Scan text for the shapes of private content before it goes anywhere public: email addresses, absolute home paths, credential and token prefixes, private and link-local IPs, .local hostnames, and secret filenames. Returns a count per pattern class and a total, nothing else. The text you send and the substrings that matched are never stored, never logged and never echoed back. Only the counts are kept. A line carrying the marker \"redaction-ok\" is skipped. Accepts up to 100KB.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"text": {
"description": "The text to scan. Up to 100KB; anything beyond that is truncated and the result says so.",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "check_redaction",
"outputSchema": null
},
{
"description": "Search the 18 architecture patterns behind this practice by keyword or by pattern number. Returns up to 3 matches, each with its number, title, the problem it opens on, and a link to the full text. Use it when you want the reasoning behind an agent-workspace design decision rather than a how-to.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"query": {
"description": "Keywords to match against pattern titles and summaries, e.g. \"credentials\", \"silent failure\", \"context cost\". A bare number 1-18 looks that pattern up directly.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "lookup_pattern",
"outputSchema": null
},
{
"description": "Price a block of context by where it enters a session. The API is stateless, so the whole transcript is re-sent on every inference step, and a token costs its size times the number of turns left after it arrives. Returns the carried token volume, the cost of the block in USD, what the same read would have cost entering 20 turns from the end, and the multiplier between the two. Use it to decide whether a large read should move later in a session or into a subagent.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"entry_turn": {
"description": "Turn number at which the block enters the context (t).",
"minimum": 0,
"type": "number"
},
"price_in_per_mtok": {
"default": 5,
"description": "Input price in USD per million tokens. Default 5.",
"minimum": 0,
"type": "number"
},
"read_mult": {
"default": 0.1,
"description": "Cache-read price multiplier against input price. Default 0.1.",
"minimum": 0,
"type": "number"
},
"size_tokens": {
"description": "Size of the block in tokens (S).",
"minimum": 0,
"type": "number"
},
"total_turns": {
"description": "Total turns in the session (T). Must be at least entry_turn.",
"minimum": 0,
"type": "number"
},
"write_mult": {
"default": 1.25,
"description": "Cache-write price multiplier against input price. Default 1.25.",
"minimum": 0,
"type": "number"
}
},
"required": [
"size_tokens",
"entry_turn",
"total_turns"
],
"type": "object"
},
"name": "price_context_read",
"outputSchema": null
},
{
"description": "Tell this server what capability you needed but didn't find here. Requests are logged and reviewed by a human; include no secrets or personal data.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"context": {
"description": "Optional: what you were trying to do, and why the existing tools did not cover it. Up to 1KB.",
"type": "string"
},
"description": {
"description": "What you needed. Up to 2KB.",
"type": "string"
}
},
"required": [
"description"
],
"type": "object"
},
"name": "request_capability",
"outputSchema": null
},
{
"description": "Full-text search across the published architecture corpus: the 18 patterns and how they compose, the evaluation method, the seven learn-track modules, and the teardowns of other people's published agent systems. Returns ranked sections, each with its title, its source file, a snippet, and a link to the full text on GitHub. Use it when you want the passage itself rather than a pattern summary; lookup_pattern is the narrower tool that answers \"which pattern covers this?\". Every section is also readable in full as a resource under the architecture:// scheme (resources/list, resources/read).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 5,
"description": "How many sections to return. 1-10, default 5.",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Search terms, e.g. \"canonical copy\", \"silent failure\", \"cache write cost\". Terms shorter than 3 characters are ignored.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_architecture",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:f3e6dd76e6a3c0a57e343fbf7098b40c640d214a60fd5652124b18012e9cb6ad | sha256sum