accord
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., "@accordCheck consistency of my resume against my positioning"
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.
accord
正本と、そこから派生する対外表現が食い違わないようにする、手元で動く MCP サーバー。
English: accord is a local MCP server that keeps one source of truth (what you can do, what you have done, how you sell it) consistent with everything derived from it (profiles, applications, résumés). Run it with
uv sync,uv run pytest,uv run accord --list. The rest of this document is written in Japanese.
何を解決するか
自分の仕事を売る人は、たいてい 3 つの正本を持っている。何ができるか、何をしてきたか、どう売るか。 そこからプロフィールや応募文や職務経歴書を書く。困るのは、売り方を変えたときである。
売り方の決めはその場の会話で終わり、どこにも残らない。だから、束ねた売り物の定義が 1 か月古いまま残り、 もう名乗っていない売り物を宣言した文面が何枚も残る。どれも規約には書いてある。書いてあるのに、 文面を書く瞬間には効かない。人が何往復もかけて自分で見つけるまで、誰も気づかない。
accord は、この規約を「読んで覚えておくもの」から「行動の瞬間に返ってくるもの」に変える。 決めを登記しようとすれば、欠けた欄を数えて返す。実在しない節を裏づけに挙げれば、書き込まずに近い節名を返す。 外に出す前に検査を呼べば、どのファイルのどこを何に合わせるかを一覧で返す。
文面そのものは書かない。書くのは人(または AI)の仕事で、accord がするのは、材料を渡すことと、 食い違いを行動の瞬間に止めることである。
Related MCP server: OpenFateAI Assistant MCP
動かす
Python 3.12 以上と uv が要る。同梱の架空のサンプルだけで動くので、 設定ファイルを作る必要は無い。
uv sync # 依存を入れる
uv run pytest # テストが通ることを確かめる
uv run accord --list # 開く口(MCP のツール 6 本と資源 1 本。以下「口」はこの 2 つを指す)を並べる引数なしで uv run accord を呼ぶと、標準入出力で MCP サーバーが立ち上がる。ネットワークの口は開かない。
自分のデータで動かすときは、samples/accord.toml を写して書き換え、次の形で指す。
uv run accord --config <写して書き換えた accord.toml のパス>開く口は次のとおり。
口 | 何をするか |
| いまの決め(看板)を読む(媒体を省くと「全体」の決め。決めが未登記なら、先に登記することを返す) |
| 媒体向けの文面を書くための材料を取り出す(決め・束・束ねる機能・裏づけの節・媒体の規約・禁じた言い回し。公開不可の節は落として警告に書く) |
| 売り方の決めを 1 ブロック登記する |
| 機能の台帳に 1 行足す |
| パッケージ定義を改訂する |
| 正本を制約に当て、違反の一覧を直し先つきで返す(範囲は、全体・媒体 1 つ・提示物 1 件から選ぶ) |
資源 | 型・関係・制約の定義を返す(セッションの初めに読む) |
6 本とも、同梱の架空のサンプルの上でそのまま動く。読みの 2 つ(決めを読む、材料を取り出す)と 検査は正本を 1 バイトも変えない。書きの 3 つ(決めの登記、機能の登記、パッケージの改訂)は、 制約に通った入力だけを正本に書き、通らない入力は書かずに拒否して次の一手を返す。
設計の要点
4 層に分ける。 上から、MCP の口を開く薄い皮(server/)、制約を執行するサービス(services/)、
正本の在処を知るリポジトリ(repository/)、Markdown ファイルそのもの。依存は上から下への 1 方向だけ。
Markdown の在処と書き方を知るのはリポジトリだけなので、保管の形を変えるときに直る場所がそこに閉じる。
サービスが皮を読み込まないのは、同じ判断をコマンドの道具からも呼べる形に残すためである。
型と制約の正本は YAML に置く。 src/accord/ontology.yaml が、型 7 つ・関係 6 種・制約 7 つの正本である。
Pydantic(Python の型検証ライブラリ)のモデル(models/types.py)と制約の宣言(models/constraints.py)は、そこからの生成物で、
scripts/generate_models.py --check が正本との一致を見る。制約を 1 か所に宣言しておくと、
同じ制約が「書きでは拒否、読みでは警告、検査では一覧」という 3 つの顔で現れても、宣言は 1 つで済む。
語彙は設定から読む。 媒体の名前、機能の分類の節、仮説の状態の語は、型の構造から外して設定ファイルに置く。
分類の選択肢を特定の人や会社の語で埋めると、型の定義ごと公開できなくなるからである。
正本の書き方(見出しの深さ、欄を箇条書きで書くか表で書くか、欄のラベルの言い方)も同じ理由で設定に置き、
設定ファイルの [reading] の節で差し替えられる。この節を書かなければ、同梱のサンプルと同じ書き方で読む。
設定を読む部分は標準ライブラリだけで動かし、型を知らない状態に保つ。
見せ方(媒体の規約・語り口の決め・禁じた言い回し)も型には持たず、置き場だけを設定に書く。
良し悪しを機械で判定しないものまで型にすると、守れない約束が増えるからである。材料の取り出しは、
その置き場から宛先の媒体の節と禁じた言い回しの節を読んで、そのまま材料に載せる。
拒否は例外ではなく返り値。 制約に反する入力は、例外ではなく「受け付けなかったこと」と 「次に何をすべきか」を持つ値で返す。返ってきた候補をそのまま渡し直せば通る、という形にしてある。 拒否のときは正本のファイルが 1 バイトも変わらない。書きの操作は、制約を全部見て通ると決まってから 1 度だけ書き戻す。
公開境界を機械で守る。 このリポジトリに入る人物・会社・媒体の名前はすべて架空で、実在しないことを
確かめた結果は samples/README.md にある。テストもこのサンプルの写しの上で走る。実データの語
(クライアントの名前や単価)が 1 語も入っていないことは、公開の前に、語の一覧と追跡中の全ファイルを
突き合わせる検査で確かめる。語の一覧と検査は公開しない手元の置き場に持ち、コミットの前に毎回走らせる。
git の履歴に一度入れば履歴の書き換えが要るので、入る前に止める形にしてある。
置き場
src/accord/ontology.yaml 型・関係・制約の正本
src/accord/server/ MCP の口(薄い皮)
src/accord/services/ 制約を執行するサービス
src/accord/repository/ 正本の Markdown の読み書き
src/accord/models/ 型・制約・返す型
src/accord/vocabulary/ 設定から読む語彙
scripts/generate_models.py 正本からモデルと制約の宣言を生成する
samples/ 架空の設定とデータ
tests/ 受け入れ条件のテスト作り方
この道具は、設計の文書を先に固め、受け入れ条件を仕様書として実装より先にコミットし、実装役とは別の検収役が仕様書だけを見て検収する、という手順で作った。実装と検収の多くは AI(Claude Code)に委譲し、設計の判断・仕様の確定・検収結果の検品・コミットは作者が行った。公開リポジトリには、実データの語(クライアント名・単価・担当者名)が入らないよう、コミットのたびに機械の検査を通している。同梱のサンプルは架空の人物と案件だけで作ってある。
ライセンス
MIT License。全文は LICENSE にある。
Available Tools
6 toolsassemble_materialC
媒体向けの文面を書くための材料を取り出す。公開不可の節は落として警告に書く。
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ||
| package | No | ||
| opportunity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| channel | Yes | 宛先の媒体 |
| package | No | 看板のパッケージ |
| evidence | No | 各機能の裏づけの節(公開可のものだけ。見出しと本文) |
| warnings | No | 旧い束の宣言、未反映の注記、落とした節の名前 |
| positioning | No | 適用される決め |
| capabilities | No | 束ねる機能 |
| channel_rules | No | 媒体の規約 |
| forbidden_phrases | No | 禁じた言い回し |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and it does disclose a non-obvious behavior: sections that cannot be published are dropped and written to a warning. This is useful, but it does not state whether the operation is read-only, whether authentication or permissions are required, or any other side effects.
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 a single efficient sentence that leads with the purpose and adds a behavioral detail. There is no filler or repetition, though the extreme brevity leaves several important aspects underspecified.
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?
An output schema exists, so return values need not be described, but the tool has 3 parameters with zero schema descriptions, no annotations, and no usage or parameter guidance. For a tool with a required channel parameter and optional package and opportunity parameters, the description is too thin for an agent to confidently select and invoke it 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?
Schema description coverage is 0% and the description does not mention channel, package, or opportunity at all. The agent receives no help understanding what these parameters mean or how they should be populated, so the description fails to compensate for the empty schema descriptions.
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 clearly states the verb and resource: extracting material for writing media-facing copy. It also adds a specific behavior, dropping non-publishable sections and recording them as warnings, which helps distinguish it from siblings such as get_positioning or check_consistency. However, it does not explicitly name alternatives or contrast itself with sibling tools.
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 phrase '媒体向けの文面を書くための' implies the tool is for assembling material when preparing media-facing content. There is no explicit guidance about when not to use it, prerequisites, or which sibling tool to choose in other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_consistencyA
正本を制約に当て、違反の一覧を直し先つきで返す。正本は変えない。
範囲は、省略か「全体」で正本全体、媒体の名前でその媒体、提示物のファイル名でその 1 件。 実在しない名前を渡したときは、拒否ではなく実在する範囲の一覧が返る。
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | 違反ではない断り |
| scope | No | 検査した範囲 |
| violations | No | 違反の一覧 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it states the master document is not modified ('正本は変えない') and that nonexistent names return a list of existing scopes rather than an error. This discloses important edge-case behavior and the read-only character of the operation. It could add more about error conditions or the meaning of '直し先', but the core behaviors are covered.
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: the primary action and non-mutation guarantee come first, followed by a concise scope specification. Every sentence earns its place, and the edge-case behavior is included without bloat.
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 the low complexity, one optional parameter, and the presence of an output schema, this description is complete enough for an agent to call the tool correctly. It covers the parameter semantics, the non-destructive nature, and the unusual invalid-name behavior. No critical information appears to be 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 schema tells the agent almost nothing about the scope parameter: it is simply a nullable string with a default. The description compensates fully by defining the exact accepted values, what each value selects, and the behavior for invalid names. This is exactly the kind of semantic enrichment the dimension asks for.
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 clearly states the operation: apply the master document to constraints and return a list of violations with fix targets, while explicitly noting the master is not changed. This is specific and informative, but it does not explicitly distinguish this tool from its siblings such as get_positioning or revise_package.
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 gives clear guidance on the scope parameter values: omitted or '全体' means the whole master, a medium name selects that medium, and a presentation file name selects that item. It also explains the behavior for nonexistent names. It does not explicitly mention when to prefer this tool over alternatives, but the input guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_positioningA
いまの決め(看板)を読む。媒体を省くと全体に適用される決めを返す。
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| package | No | 前面に出す束のパッケージ |
| warnings | No | 決めが未登記などの断り |
| positioning | No | 適用される最新の決め |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It does convey that the operation reads current positioning and that channel omission changes the result to the full-scope decision. It does not explicitly state side-effect freedom, error behavior, or what the returned object contains, though the output schema may cover some of this.
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 short Japanese sentence that immediately states the core action and then clarifies the optional-parameter behavior. It contains no filler, repeated information, or unnecessary detail.
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?
The tool is simple: one optional parameter and an output schema is present, so return-value explanation is not necessary. The description covers the primary behavior and the effect of omitting the parameter, which is the main uncertain point for an agent. It could be slightly stronger by explicitly noting the absence of side effects, but given the tool's simplicity it is largely complete.
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 schema provides no parameter descriptions, and schema description coverage is 0%, so the description must compensate. It does add meaning by mapping the 'channel' parameter to a medium ('媒体') and explaining that omitting it returns the decision applied to the whole. However, it does not clarify what valid channel values look like or what '全体' concretely means, leaving some ambiguity.
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 ('読む' / read) and a clear resource ('いまの決め(看板)' / current decision), so an agent can tell this is a retrieval operation. It also explains the behavior when the optional channel is omitted, which adds precision. It does not explicitly differentiate itself from sibling tools like record_positioning, but the read-vs-write intent is reasonably clear.
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 indicates that the tool reads current positioning and that omitting the channel scopes the request to the overall setting. However, it does not state when to choose this tool over siblings such as record_positioning or check_consistency, nor does it mention any exclusion conditions. Usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_positioningA
売り方の決めを 1 ブロック登記する。必須の欄が欠けていれば書かずに拒否する。
日付は 2026-09-16 の形で渡す。登記が通ると、その場でパッケージ定義の鮮度と、
旧い束を宣言する提示物の件数(ファイル名つき)が返る。
| Name | Required | Description | Default |
|---|---|---|---|
| scope | Yes | ||
| rationale | Yes | ||
| decided_on | Yes | ||
| exceptions | No | ||
| headline_package | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| accepted | Yes | 正本に書き込んだかどうか |
| recorded | No | 登記した内容(拒否のときは空) |
| warnings | No | 書き込みは通ったが、後で直したほうがよいこと |
| rejection | No | 受け付けなかった理由と次の一手(通ったときは None) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full behavioral burden. It discloses rejection behavior on missing required fields, atomic 'one block' registration, required date format, and a concrete return payload (package definition freshness and count of presentations with filenames). It omits permissions/reversibility, but the core behavior is well covered.
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 short, front-loaded with the primary action, and each sentence adds a distinct piece: action, rejection condition, date format, and return value. No filler is present.
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?
Despite having 5 parameters (4 required) and no annotations, the description does not explain how to populate the main fields, nor does it clarify what qualifies as an exception. It covers the return behavior, which helps, but the calling contract is incomplete.
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 0%, so the description must compensate. It only addresses the date parameter ('2026-09-16' format); it gives no semantics for scope, headline_package, rationale, or exceptions. An agent would have to guess the meaning of headline_package and scope from names alone.
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 opens with a specific verb+resource: 'register the sales-positioning decision as one block' (売り方の決めを1ブロック登記する). This clearly distinguishes from siblings like get_positioning (retrieval) and register_capability (capability, not positioning). It also states a behavioral guard: refuse without writing if required fields are missing.
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 usage context—register a positioning decision—and gives a date format rule, but it never states when to prefer this over siblings or mentions alternatives. There are no exclusions or routing cues beyond the resource type, so an agent could still be uncertain between record_positioning and register_capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_capabilityB
機能の台帳に 1 行足す。必須欄・分類・裏づけの節が通らなければ書かずに拒否し、次の一手を返す。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| category | Yes | ||
| description | Yes | ||
| evidence_sections | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| accepted | Yes | 正本に書き込んだかどうか |
| recorded | No | 登記した内容(拒否のときは空) |
| warnings | No | 書き込みは通ったが、後で直したほうがよいこと |
| rejection | No | 受け付けなかった理由と次の一手(通ったときは None) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden of behavioral disclosure. It usefully reveals that failed validation leads to a refusal without writing and a 'next move' response. It does not, however, disclose success-path behavior, permission requirements, or whether entries are modifiable later, leaving important gaps.
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?
Two compact sentences, front-loaded with the core action, then the failure behavior and resulting response. Every phrase earns its place and there is no 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?
Despite having an output schema, the definition leaves substantial gaps: no parameter semantics, no sibling differentiation, no guidance on what valid categories or evidence sections look like, and no success-path description. An agent would likely struggle to invoke this correctly without additional context.
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 0%, and the description only alludes to 'required fields, classification, and evidence sections' without defining the four parameters (name, description, category, evidence_sections) or their validation criteria. This partial mapping does not compensate for the absent schema-level documentation.
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 states a specific verb ('adds a row') and resource ('capability ledger'), and adds refusal behavior. It is clear, but it does not explicitly distinguish this tool from siblings such as record_positioning, so it does not reach a 5.
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 (registering a capability entry) and gives a conditional rule: if required fields, classification, or evidence sections fail, refuse without writing and return the next move. However, it provides no explicit guidance on when to use this tool versus the sibling tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revise_packageB
パッケージ定義を改訂する。台帳に無い機能名を束ねようとすれば書かずに拒否する。
通ると、その節を書き換えて最終更新日を今日に進める。節が無ければ新しく足す。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| basis | No | ||
| buyer | Yes | ||
| source | No | ||
| capabilities | Yes | ||
| hypothesis_state | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| accepted | Yes | 正本に書き込んだかどうか |
| recorded | No | 登記した内容(拒否のときは空) |
| warnings | No | 書き込みは通ったが、後で直したほうがよいこと |
| rejection | No | 受け付けなかった理由と次の一手(通ったときは None) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining side effects. It does this well: it warns that the tool refuses without writing if capabilities are not in the ledger, and it details what happens when the revision passes—rewriting the section, updating the last-updated date, and adding a section if absent.
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 three tight sentences with no filler. The main purpose is front-loaded, followed by the refusal condition and then the write behavior. Every sentence adds information.
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?
For a tool with 6 parameters, 0% schema description coverage, and no annotations, the description is too thin. The behavioral details are useful, but the missing parameter meanings and lack of usage context leave an agent guessing about how to construct a valid call.
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 0%, so the description must compensate, but it only implicitly refers to capabilities ('台帳に無い機能名') and the package name. Parameters like basis, buyer, source, and hypothesis_state remain completely unexplained.
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 clearly states the action ('改訂する' / revise) and the resource ('パッケージ定義' / package definition). It stops short of explicitly distinguishing this from sibling tools, but the revision framing is specific enough to be understood.
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?
There is no guidance on when to use revise_package versus get_positioning, record_positioning, or register_capability. The description explains the tool's behavior but not the conditions under which an agent should select it.
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.
6 tool updates
v0.1.0- First observed
assemble_material - First observed
check_consistency - First observed
get_positioning - First observed
record_positioning - First observed
register_capability - First observed
revise_package
TDQS
Scored across 6 tools
Each tool targets a distinct resource and action: reading or recording positioning, assembling material, registering capabilities, revising packages, and checking consistency. There is no meaningful overlap, and the descriptions leave no ambiguity about which tool to select.
All tool names follow a consistent lowercase snake_case verb_noun pattern: get_positioning, record_positioning, assemble_material, register_capability, revise_package, check_consistency. The verbs clearly indicate the action, and the nouns identify the target resource.
Six tools is well within the ideal scope for a focused domain. Each tool addresses a distinct part of the workflow—reading/writing positioning, preparing material, managing capabilities, editing packages, and validating consistency—without unnecessary redundancy or bloat.
The core positioning, package revision, and consistency-checking workflows are well covered, and the register_capability tool includes guardrails with next-step guidance. However, there is no direct tool to read or update the capability ledger, and delete operations are absent, which creates minor gaps for maintenance scenarios.
Maintenance
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
Guarded MCP server for agent-readable business truth, provenance, readiness, and discovery.
MCP server for OnceAsk, the AI-native current-address layer for people and agents.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that records decisions, rejected alternatives, and justifications, and retrieves them later to avoid re-litigating past choices. It stores data locally in SQLite and Markdown.2Apache 2.0
- AlicenseAqualityDmaintenanceA local, open-source MCP server that provides deterministic organizational tools for structured decisions, guided reflection, action planning, and transparent digital report outlines without requiring an API key.628 npmMIT
- AlicenseBqualityCmaintenanceA local MCP server for managing engineering context across Components, Repos, Tasks, and Governance entities. It enables capturing reusable context and composing it per-task with typed relationships and cross-cutting guidelines.361MIT
- AlicenseAqualityBmaintenanceLocal MCP server that manages a job search using Markdown files, enabling skills tracking, gap analysis, and offer pipeline management via Claude.845 npmMIT