Agent Workspace Practice
Search + patterns, maturity assessment, context pricing, redaction checks - a practice as tools.
我該用這個嗎
品質與安全性
發現項目(2)
- HIGH
- MEDIUM在 assess_workspace 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"agent-workspace-practice": {
"url": "https://jamesross.ai/mcp"
}
}
}遠端端點
https://jamesross.ai/mcpstreamable-http它能做什麼
工具清單
工具(6)
🟢search_architecture(query, limit)
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).
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search terms, e.g. \"canonical copy\", \"silent failure\", \"cache write cost\". Terms shorter than 3 characters are ignored.",
"minLength": 1,
"maxLength": 200
},
"limit": {
"type": "integer",
"description": "How many sections to return. 1-10, default 5.",
"minimum": 1,
"maximum": 10,
"default": 5
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢lookup_pattern(query)
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.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"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."
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢assess_workspace(variant, answers)
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.
輸入結構描述
{
"type": "object",
"properties": {
"variant": {
"type": "string",
"enum": [
"practitioner",
"org"
],
"description": "\"practitioner\" for the 18-question workspace check, \"org\" for the 12-question organisational readiness check."
},
"answers": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 3
},
"description": "Answers in question order: 18 integers for \"practitioner\", 12 for \"org\". Each is 0-3."
}
},
"required": [
"variant",
"answers"
],
"additionalProperties": false
}🟢price_context_read(size_tokens, entry_turn, total_turns, read_mult, write_mult, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"size_tokens": {
"type": "number",
"description": "Size of the block in tokens (S).",
"minimum": 0
},
"entry_turn": {
"type": "number",
"description": "Turn number at which the block enters the context (t).",
"minimum": 0
},
"total_turns": {
"type": "number",
"description": "Total turns in the session (T). Must be at least entry_turn.",
"minimum": 0
},
"read_mult": {
"type": "number",
"description": "Cache-read price multiplier against input price. Default 0.1.",
"default": 0.1,
"minimum": 0
},
"write_mult": {
"type": "number",
"description": "Cache-write price multiplier against input price. Default 1.25.",
"default": 1.25,
"minimum": 0
},
"price_in_per_mtok": {
"type": "number",
"description": "Input price in USD per million tokens. Default 5.",
"default": 5,
"minimum": 0
}
},
"required": [
"size_tokens",
"entry_turn",
"total_turns"
],
"additionalProperties": false
}🟡check_redaction(text)
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.
輸入結構描述
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The text to scan. Up to 100KB; anything beyond that is truncated and the result says so."
}
},
"required": [
"text"
],
"additionalProperties": false
}🟢request_capability(description, context)
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.
輸入結構描述
{
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "What you needed. Up to 2KB."
},
"context": {
"type": "string",
"description": "Optional: what you were trying to do, and why the existing tools did not cover it. Up to 1KB."
}
},
"required": [
"description"
],
"additionalProperties": false
}社群
證據