Skip to main content
Glama
kentaroajisaka

mf-full-mcp

mf-full-mcp

Dies ist ein inoffizieller MCP-Server für マネーフォワード クラウド会計. Er bietet Tools mit denselben Namen wie das offizielle Beta-MCP (mfc_ca_*) und ergänzt die folgenden drei Punkte:

  • Anhängen von Belegen – Belege wie Quittungen oder Rechnungen hochladen und einem Journaleintrag zuordnen. Das offizielle Remote-MCP hat diese Funktion Stand August 2026 nicht.

  • Gleichzeitige Verbindung zu mehreren Unternehmen – Tokens für mehrere juristische Personen vorhalten und ohne erneute Authentifizierung je Fenster/Sitzung mit unterschiedlichen Unternehmen verbinden.

  • Vollständiges Löschen von Journaleinträgen – Das offizielle MCP unterstützt nur das Anlegen und Aktualisieren, kein Löschen.

Die Nutzung ist auf Arbeitsabläufe ausgelegt, wie sie in Steuerberatungskanzleien üblich sind, die täglich in den Büchern von Dutzenden von Unternehmen arbeiten.

Dies ist ein inoffizielles Projekt. Es steht in keiner Verbindung zu 株式会社マネーフォワード und wird von diesem Unternehmen nicht unterstützt.


Warum ich das gebaut habe

Die Access-Tokens von MF sind an das eine Unternehmen gebunden, das im Autorisierungsbildschirm ausgewählt wurde (das zeigt sich daran, dass /api/v3/offices statt eines Arrays ein einzelnes Objekt zurückgibt). Um mehrere juristische Personen zu verwalten, muss man genauso viele Tokens besitzen.

Das offizielle Remote-MCP hat zwei Endpoints, die jeweils unterschiedliche Eigenheiten haben.

Offizielle Beta

Offizielle Alpha

Dieser Server

Mehrere juristische Personen gleichzeitig

Nein (bei Wechsel erneute Authentifizierung)

Ja

Ja

Lebensdauer der Tokens

Lang

ca. 1 Stunde

Automatische Aktualisierung (messbar länger als 1 Monat unbeaufsichtigt möglich)

Authentifizierungsvorgang

Automatisch

Autorisierungscode manuell kopieren/einfügen

Automatisch

Belege anhängen

Nein

Nein

Ja

Die Beta-Version ist bei der Authentifizierung bequem, kann aber nur ein Unternehmen vorhalten; die Alpha-Version kann mehrere vorhalten, aber das Token läuft nach ca. 1 Stunde ab und erfordert eine manuelle erneute Authentifizierung.

**„Mehrere juristische Personen getrennt je Fenster zu bedienen, ohne sich um erneute Authentifizierung kümmern zu müssen – das ist mit keiner der offiziellen Varianten möglich.“** Dieser Server schließt diese Lüke, indem er OAuth selbst implementert.


Related MCP server: MF Invoice MCP

Design-Prinzipien

1. OAuth selbst implementeren (dynamische Client-Registrierung)

Bei jeder Authentifizierung wird über die dynamische Client-Registrierung nach RFC 7591 ein öffentlicher Client registriert (token_endpoint_auth_method: "none" + PKCE).

Daher ist keine vorherige App-Registrierung erforderlich, und client_secret existert von vornherein nicht. Weder in diesem Repositori noch in der Umgebung des Nutzers werden irgendwelche geheimnisse abgelegt.

2. Tokens pro Unternehmen mit Label speichern

~/.mf-full-mcp/tokens.json (Verzeichnis 0700 / Datei 0600) speichert die Tokens für mehrere Unternehmen mit Labeln als Schlüssel. Die Idee dahinter: Ein Token = ein Unternehmen – man hält also so viele, wie man braucht.

Abgelaufene Tokens werden automatisch erneuert (proaktiv 60 Sekunden vor Ablauf plus ein Retry bei 401). Messungen zeigen, dass Refresh-Tokens über einen Monat gültig sind; nach einer einmaligen Authentifizierung können Sie das System eine Weile unbeaufsichtigt lassen.

3. Das aktive Unternehmen ist pro Sitzung unabhängig

Das ist der Kern dieses Projekts.

use_office ändert nur den Speicher innerhalb des Prozesses; das active-Feld in der gemeinsamen Datei wird nicht geändert. Der Wert der gemeinsamen Datei wird nur als Anfangswert für neue Prozesse gelesen, die noch nie umgeschaltet haben.

Dadurch können Sie in Fenster A mit Unternehmen A und in Fenster B parallel mit Unternehmen B arbeiten.

Wenn hier die gemeinsame Datei geändert würde, würde der andere Prozess in dem Moment, in dem einer das Unternehmen wechselt, Daten einer anderen juristischen Person abrufen. Beim Umgang mit Büchern ist das ein Unfal, der nicht passieren darf. Das eigentliche Wesen der „Gleichzeitigen Verbindung zu mehreren Unternehmen“ liegt weniger darin, mehrere Tokens zu besitzen, als viel mehr darin, den aktiven Status nicht zu teilen.

Wenn Sie es beim Start festlegen möchten, verwenden Sie die Umgebungsvariable MF_FULL_OFFICE.

4. Automatische Zuweisung des Callback-Ports

Mit server.listen(0) lässte das Betriebssystem einen freien Port zuweisen. Die Client-Registrierung erfolgt, nachdem die redirect_uri mit dem endgültig festgelegten Port zusammengesetzt wurde (Loopback-Redirect nach RFC 8252).

Bei einem festen Port schlägt die Authentifizierung im zweiten Fenster mit EADDRINUSE fehl. Die Reihenfolge „listen → Port festeegen → register → authorize“ war nötig, um das Design aus Punkt 3 tatsächlich funktionsfähig zu machen.

Aus Gründen der Abwärtskompatibilität wird ein fester Port nur verwendet, wenn MF_FULL_CALLBACK_PORT expizit gesetzt ist.


Anhängen von Belegen

Die Tools des offiziellen Remote-MCP umfasen Stand August 2026 nur die Bearbeitung von Journaleinträgen, Berichten, Transaktinen und Stammdaten – ein Tool für die Verwaltung von Belegen (Quittungen/Rechnungen) ist nicht entalten. Wer einen Beleg einem Journaleintrag zuordnen wolte, musste das manuel im Browser tun.

Dieser Server stelt das als Tool bereit. Man übergibt lediglich den absoluten Pfad einer lokalen Datei; ales von der base64-Kodierung über den Uplad bis zum Anhängen an den Journaleintrag wird erledigt.

mfc_ca_postVouchers(journal_id: "<仕訳ID>", file_paths: ["/path/to/receipt.pdf"])

Zum Lösen der Zuordnung verwenden Sie mfc_ca_deleteVouchers.

Dass man in einem einzigen Ablauf sowohl den Journaleintrag anlegen als auch den zugehörigen Beleg anhängen kann, war eines der Motive für die Entwicklung dieses Servers.

Achtung – Wird journal_id weggelassen, entsteht ein isolierter Beleg, der keinem Journaleintrag zugeordnet ist, und es gibt keine Möglichkeit, ihn später einem Journaleintrag zuzuordnen. Geben Sie diese daher grundsätzlich immer an.


Voraussetzungen

  • Node.js 20 oder höher

  • Ein Konto bei マネーフォワード クラウド会計

Installation

git clone https://github.com/kentaroajisaka/mf-full-mcp.git
cd mf-full-mcp
npm install
npm run build

Bei Ihrem MCP-Client registrieren (im Fall von Claude Code: ~/.claude.json).

{
  "mcpServers": {
    "mf-full": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/mf-full-mcp/dist/index.js"],
      "env": {}
    }
  }
}

Verwendung

Erstes Unternehmen authentifizieren

authenticate(label: "company-a")

Öffnen Sie die zurückgegebene authUrl im Browser, wählen Sie das Unternehmen aus und erteilen Sie die Zustimmung. Anschließend prüfen Sie den Status mit auth_status.

Weitere Unternehmen hinzufügen

Wiederholen Sie einfach denselben Vorgang mit einem anderen Label.

authenticate(label: "company-b")

Verbindungsziel wechseln

list_offices          保存済み事業者の一覧
use_office            このセッションの接続先を切り替える
mfc_ca_currentOffice  いまどの事業者に繋がっているか確認する

use_office hat keine Auswirkungen auf andere Sitzungen. Es wird empfohlen, vor dem Abrufen von Dten mit mfc_ca_currentOffice das Zielunternehmen zu prüfen.

Tool-Übersicht

Authentifizierung und Unternehmensverwaltung

Tool

Beschreibung

authenticate

OAuth-Authentifizierung starten (über extra_scopes können zusätzliche Bereiche wie Gehaltsabrechnung angefordert werden)

auth_status

Status des laufenden Authentifizierungsvorgangs anzeigen

list_offices

Gespeicherte Unternehmen und aktuelle Verbindung anzeigen

use_office

Verbindungsziel dieser Sitzung wechseln

remove_office

Gespeichertes Token löschen

mf_full_info

Angeforderte Bereiche, Callback-Port und andere Einstellungen anzeigen

Kompatibel mit dem offiziellen M-CP (mfc_ca_*)

Unternehmen, Abrechnungszeitraum, Sachkonten, Unterkonten, Abteilungen, Steuerkategorien, Geschäftspartner, Integrationsdienste, Abruf/Erstellung/Aktualisierung von Journaleinträgen, Bilanz sowie Gewinn- und Verlustrechnung (BS/PL), Verlaufsübersichten (BS/PL), Abruf/Erstellung/Journalisierung von Transaktionen.

Was das offizielle MCP nicht bietet

Tool

Beschreibung

mfc_ca_postVouchers

Beleg hochladen und an Journaleintrag anhängen (bei Angabe des Pfads einer lokalen Datei wird automatisch base64-kodiert)

mfc_ca_deleteVouchers

Zuordnung von Journaleintrag und Beleg aufheben (der Beleg selbst bleibt isoliert erhalten)

mfc_ca_deleteJournals

Journaleintrag vollständig löschen

Umgebungsvariablen

Variable

Standardwert

Beschreibung

MF_FULL_OFFICE

Keine

Unternehmen für die Verbindung der Sitzung beim Start festlegen

MF_FULL_CALLBACK_PORT

Automatische Zuweisung

Port für den OAuth-Callback festlegen

MF_FULL_SCOPES

16 Buchhaltungs-Scopes

Angeforderte Scopes überschreiben

MF_FULL_CLIENT_NAME

mf-full-mcp

Client-Name bei der dynamischen Client-Registrierung


Bekannte Stolpersteine

Die API von MF hat einige Stolperfallen, in die man leicht tappt.

  • ID-Enkodierung – Die IDs von MF stammen aus Base64 und enthalten z. B. %2F. Wenn man sie beim Einfügen in einen URL-Pfad nicht neu enkodiert, wird der Pfad beschädigt und es kommt zu 403. Dieser Server ist dagegen abgesichert; geben Sie die zurückgegebenen IDs jedoch unverändert und ohne Bearbeitung weiter.

  • putJournals ersetzt alles – Eine Teilaktualisierung ist nicht möglich. Bewahren Sie den ursprünglichen Journaleintrag auf, bevor Sie aktualisieren.

  • Umgang mit Schreibwerkzeugen – Das Anlegen und Aktualisieren von Journaleinträgen, das Anhängen und Lösen von Belegen sowie die Journalisierung von Transaktionen verändern die Buchhaltung. Wenn diese Tools über einen KI-Agenten verwendet werden, stellen Sie bitte sicher, dass vor der Ausführung immer eine menschliche Genehmigung erfolgt.

Sicherheit

Wo die Tokens gespeichert werden

Beim offiziellen Remote-MCP läuft die Authentifizierung vollständig auf der Serverseite ab. Die Autorisierung und der Token-Austausch werden als MCP-Tools bereitgestellt; es gibt keine Phase, in der der Nutzer access_token direkt in die Hand bekommt. Das heißt: MF-Tokens werden nie auf dem Gerät des Nutzers gespeichert.

Dieser Server speichert dagegen die Tokens auf Ihrem eigenen Gerät. Sie werden im Klartext in ~/.mf-full-mcp/tokens.json abgelegt (Verzeichnis 0700 / Datei 0600).

Das ist ein Trade-off. Dass die Tokens mehrerer juristischer Personen ohne erneute Authentifizierung vorgehalten werden können und dass abgelaufene automatisch erneuert und dann eine Weile unbeaufsichtigt bleiben können, funktioniert nur, weil die Refresh-Tokens lokal vorliegen. Anders ausgedrückt: Wenn diese Datei in falsche Hände gerät, erhält man Zugriff auf die Bücher aller gespeicherten Unternehmen.

Vor dieesem Hintergrund wird der folgende Umgang vorausgesetzt:

  • Nur auf einem persönlichen Gerät mit verschlüsseltem Datenträger verwenden. Nicht auf gemeinsan genutzten Geräten verwenden.

  • Nicht mehr benötigte Unternehmen mit remove_office löschen.

  • Die Speicherung im Schülsselbund des Betriebssystems ist eine künftige Aufgabe.

client_secret existert nicht

Durch die dynamische Client-Registrierung ist das Design so ausgelegt, dass keine geheimnen Schülssel aufbewahrt werden müsen. Weder in dieesem Repositori noch in der Umgebung des Nutzers wird ein client_secret abgelegt.

Haftungsausschluss

Diees Software ist inoffiziell und steht in keiner Verbindung zu 株式会社マネーフォーワード.

Ein Teil der von dieesem Server angeforderen Scopes kann **aufgrund von Spezifikationsändrungen seitens MF ohne Vorankündigung unbrauchbar werden.** In dieseem Fal funktionieren einige Funktinen wie der Belegbereich nicht mehr.

Aufgrund der Natur von Buchhaltungsdaten beachten Sie bei der Nutzung bitte die folgenden Punkte:

  • Für die Ergebnisse von Schreiboperatinen übernimmt der Autor keinerlei Haftung.

  • Bevor Sie das Tool mit echten Büchern verwenden, prüfen Sie die Funktinen mit einem Testunternehmen.

  • Bitte prüfen Sie selbst die Nutzungsbedingungen von マネーフォーワード, bevor Sie das Tool verwenden.

Diees Software wird unter der MIT-Lizenz bereitgestellt. Detals finden Sie in der LICENSE.

Verwandtes

Available Tools

29 tools
authenticateA

MFへのOAuth認証を開始する。返ってきたauthUrlをユーザーがブラウザで開き、事業者を選択して許可すると自動でトークンが保存される。完了確認はauth_status。

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoトークンの保存名(事業者を区別するラベル。省略時 default)
extra_scopesNo既定の会計16スコープに追加で要求するスコープ(スペース区切り。例: 'mfc/payroll/payroll.read mfc/payroll/bonus.read')

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, and it discloses the essential non-obvious behavior: the returned authUrl must be opened by the user in a browser, the user must select and authorize, and the token is then stored automatically without a direct response containing it. This is meaningful context beyond the schema, though it omits details like timeout behavior or label-overwrite semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler: it states the action, the returned artifact, the required user step, the automatic token storage, and the completion-check path. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an OAuth-start tool with no output schema, the description adequately covers the key flow: call this, get authUrl, user authorizes in browser, token is saved, then verify with auth_status. It does not specify the exact return shape beyond containing authUrl, but that is sufficient for an agent to orchestrate the flow correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters (label and extra_scopes) are already well documented in the input schema. The tool description adds no parameter-specific meaning beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'MFへのOAuth認証を開始する' (start OAuth authentication to MF), which clearly distinguishes this from the sibling tools that perform accounting operations or office management. It also clarifies the overall flow by stating an authUrl is returned and tokens are saved automatically, so the tool's purpose is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly defines when to use this tool—when starting OAuth authentication for MF—and explicitly directs the completion check to auth_status ('完了確認はauth_status'). This gives the agent a clear next step and distinguishes it from the authentication-status sibling, though it does not exhaustively discuss when not to use it relative to the full sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth_statusA

進行中の認証フローの状態を確認する(waiting/exchanging/done/error)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully reveals the possible returned statuses (waiting/exchanging/done/error), but it does not state whether the call is side-effect free, how it behaves when no authentication flow is ongoing, or what an error entails. This is adequate but has clear gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core purpose and then provides the status vocabulary in parentheses. There is no wasted wording or redundant repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (no parameters, no output schema, no annotations), the description is largely sufficient: it names the operation, the target flow, and the status values. It could be more explicit about the exact return structure or behavior when no flow is active, but these are minor for a simple status-checking tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the empty schema already fully documents the input. The baseline for zero-parameter tools is 4, and no additional parameter details are needed because there is nothing to supply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (確認する/check) and the resource (status of the ongoing authentication flow), and also enumerates the possible statuses: waiting/exchanging/done/error. This unambiguously distinguishes it from the sibling authenticate tool, which starts a flow rather than checking its state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context of 'ongoing authentication flow' implies this tool should be used after or during authentication to poll or inspect state, but there is no explicit when-to-use/when-not-to-use guidance or mention of alternatives. The usage is reasonably inferable but not clearly specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_officesA

保存済みトークン(事業者)の一覧とアクティブな接続先を表示する。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It clearly indicates a display/read-only operation and what is displayed, but adds no detail about prerequisites, output format, or how 'active' connection state is determined. This is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no filler or redundancy. It front-loads the core purpose and is immediately scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool with no annotations and no output schema, the description states the essential returned content: saved tokens and the active connection destination. It doesn't specify the exact return shape or define 'active', but the tool's simplicity makes this mostly sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is effectively 100%, so there is no parameter semantics for the description to add. The zero-parameter baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (表示する) and a clear resource (保存済みトークン(事業者)の一覧とアクティブな接続先), so an agent can tell this lists saved office tokens and the active connection. It does not explicitly contrast with siblings like use_office or remove_office, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: an agent can infer that this should be called when it needs to see saved tokens/offices or the active connection. No explicit when-to-use or when-not-to-use guidance is provided, and no alternatives such as use_office are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_currentOfficeB

事業者情報と会計期間を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states a read operation ('取得します'), but does not disclose authentication requirements, behavior when no current office is selected, error conditions, or the output shape. This is thin but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no filler. It front-loads the core action and resource, which is appropriate for a simple zero-parameter getter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter getter with no output schema, the description is mostly sufficient, but it misses important operational context: the notion of 'current' office is only implied by the tool name, and the description does not explain the relationship with list_offices/use_office or what happens when no office is active.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the empty input schema fully covers this dimension. The description has no need to explain parameters, matching the baseline of 4 for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('取得します' / retrieves) and names a concrete resource ('事業者情報と会計期間' / business operator info and accounting period). It is distinguishable from sibling getters like mfc_ca_getAccounts and mfc_ca_getTaxes, though it does not explicitly say 'current office' in the text and leaves the exact scope of '事業者情報' somewhat open.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus related office-management siblings such as list_offices, use_office, or remove_office. The description does not mention prerequisites like selecting an office first or alternative tools that also return office-related data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_deleteJournalsA

仕訳を完全削除します(公式MCP未提供・帳簿書き込み。要ユーザー承認)。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full behavioral burden. It explicitly discloses that this is a destructive 'complete delete', a bookkeeping write operation, unofficial relative to the MCP, and requires user approval. This is unusually transparent for a delete tool, though it does not mention return values or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that states the core action first and packs all essential warnings into a compact parenthetical. Every element earns its place with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool with no annotations and no output schema, the description covers the critical safety aspects: full deletion, write operation, and user approval. It is weakened by leaving the sole parameter undefined and not mentioning any post-deletion behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the only parameter `id` is documented only as 'string'. The description does not explain what the id refers to, its format, or how to obtain it. The agent must infer from the tool name that it is a journal identifier.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('完全削除' = completely delete) and resource ('仕訳' = journals), making the tool's purpose obvious. It lacks an explicit contrast with the sibling deleteVouchers tool, but the resource noun distinguishes it from the surrounding get/post/put journal tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: delete a journal entry. It also adds a relevant precondition ('要ユーザー承認' = user approval required). However, it gives no explicit guidance about when this tool should be preferred over alternatives such as deleteVouchers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_deleteVouchersA

仕訳と証憑の紐付けを解除します(証憑自体は孤立して残る。公式MCP未提供・要ユーザー承認)。

ParametersJSON Schema
NameRequiredDescriptionDefault
journal_idYes
voucher_file_idYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description correctly carries the behavioral burden and does disclose an important side effect ('the voucher itself remains isolated') and a requirement ('user approval required'). However, it does not explain the effect on the journal, reversibility, return value, or error behavior, so transparency is only partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence followed by a tight parenthetical. Every clause earns its place: action, side effect, availability caveat, and authorization requirement. No redundant wording or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only two simple string parameters and no output schema, the description covers the core purpose and key side effect. However, it does not mention what the caller receives on success, whether the operation is reversible, or how the 'user approval' requirement manifests in practice, which leaves meaningful gaps for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 refers to '仕訳' (journal) and '証憑' (voucher), which map to journal_id and voucher_file_id, adding conceptual meaning beyond the bare schema. Still, it does not explicitly define each parameter's format or constraints, leaving some inference required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('unlink link between journal and voucher') and a specific resource, distinguishing it from similar deletion tools like mfc_ca_deleteJournals. It also clarifies that the voucher itself remains, preventing the misleading name 'deleteVouchers' from causing a wrong mental model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not specify when to use this tool versus alternatives, nor does it name a sibling or exclusion condition. The parenthetical provides context about authorization and official MCP availability, but no guidance about selecting this tool over deleteJournals or other related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getAccountsC

勘定科目を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
availableNo省略/true=有効のみ、false=全件(有効+無効)。falseは『無効のみ』ではない点に注意

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure, yet it only says 'retrieves account titles.' The verb 'retrieve' faintly implies a read-only operation, but nothing is said about auth requirements, side effects, defaults, or return shape. For a data-fetching tool with zero annotation coverage, this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence that is entirely front-loaded with the core purpose. There is zero wasted wording, and the brevity is appropriate for what the tool does. Concision here is genuine and not a symptom of under-specification, as the schema handles parameter detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one optional parameter and full schema coverage, some brevity is acceptable, but the description still fails to explain return values, differentiate from the three similarly named sibling get-* tools, or note any filtering implications beyond the schema. An agent cannot tell whether this returns master data, its format, or how it relates to sub/connected accounts, so completeness is inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the 'available' parameter is well documented in the schema, including the important caution that false means all records (enabled+disabled) and not 'only disabled.' The description itself adds no parameter information, but with full coverage the baseline of 3 is appropriate and no compensation is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '勘定科目を取得します' ('retrieves account titles') states a clear verb and resource, clarifying that 'Accounts' refers to accounting account titles in the Japanese context. It is close to a restatement of the tool name but adds domain specificity. However, it does not differentiate among close siblings like mfc_ca_getSubAccounts or mfc_ca_getConnectedAccounts, so it lacks the explicit distinguishing language of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It does not mention getSubAccounts, getConnectedAccounts, or any condition that would select one account-fetching tool over another. With multiple sibling tools that sound similar, an agent gets no routing help and must infer usage entirely from names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getConnectedAccountsB

連携サービス(自動連携・手動管理とも)を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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 signals a read-only operation through '取得します' and usefully states that both automatic and manual integration types are included. However, it does not describe the returned payload shape, possible empty results, error behavior, or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise Japanese sentence with no filler. The action and scope are stated directly and the key qualifier is included without unnecessary wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless getter, the description is close to minimally viable, but with no output schema and no annotations, an agent is left without information about the return structure or edge cases. The meaning of '連携サービス' is also underspecified relative to the broader set of sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters in the input schema, so parameter semantics are vacuous. The schema already fully documents this, and the description has nothing meaningful to add about parameters. The baseline for a zero-parameter tool is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb '取得します' (retrieves) and identifies the resource as '連携サービス', adding a scope qualifier '自動連携・手動管理とも' (both automatic linkage and manual management). This makes the basic purpose clear, though it does little to distinguish it from similarly named sibling getters like mfc_ca_getAccounts, and '連携サービス' vs the tool name 'ConnectedAccounts' introduces slight ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus sibling tools such as mfc_ca_getAccounts, mfc_ca_getSubAccounts, or mfc_ca_getJournals. The appropriate context is only implied by the resource name; there are no explicit conditions, exclusions, or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getDepartmentsB

部門を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
availableNo省略/true=有効のみ、false=全件(有効+無効)。falseは『無効のみ』ではない点に注意

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden, but it only says 'gets departments.' It does not explicitly state that the operation is read-only, whether authentication is required, what the return shape looks like, or how the optional availability filter behaves in practice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler, repetition, or unnecessary detail. It is concise and immediately communicates the basic action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-optional-parameter fetcher, the minimal description plus well-documented schema is workable, but the absence of annotations and output schema leaves gaps around return format, default behavior, and authentication. The description is minimally viable rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool description does not mention parameters, but the input schema fully documents the single optional 'available' boolean and explicitly clarifies that false means all records (active plus inactive), not inactive-only. Since schema description coverage is 100%, the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '部門を取得します' ('Gets departments') states a clear action and resource, so an agent knows the tool retrieves department data. It is unambiguous and distinct from sibling tools that deal with accounts, taxes, journals, and trade partners, though it adds no qualifier about scope or filtering beyond what the name already implies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool rather than the many sibling getter tools, nor any mention of prerequisites, workflow context, or alternatives. An agent must infer the appropriate usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getJournalByIdB

仕訳を1件取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes仕訳ID(URLエンコード済みのまま)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states that one journal entry is retrieved. It does not mention error behavior, not-found handling, response format, or any read-only guarantees, leaving important operational behavior undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no filler or repeated information. It is appropriately sized for a simple get-by-ID tool and front-loads the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter retrieve operation with full schema coverage, the description is minimally adequate. However, with no output schema and no annotations, it would be more complete if it acknowledged behavior such as what happens when the ID is not found or whether the response is the full journal object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 the 'id' parameter as a URL-encoded journal ID, which meets the baseline of 3. The description itself adds no parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('取得します') and resource ('仕訳' / journal entry), and the tool name adds the by-ID scope. It is distinguishable from sibling mfc_ca_getJournals by the '1件' (one item) focus, though it does not explicitly contrast itself with the list variant.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool instead of alternatives such as mfc_ca_getJournals or other journal-related tools. The intended use case is only implied by the name and the one-line description, with no exclusions or conditions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getJournalsB

仕訳一覧を取得します。start_date または end_date のいずれかが必要。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
end_dateNo
per_pageNo最大10000
account_idNo
start_dateNo
is_realizedNo
transaction_idsNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses a read-style list retrieval and an important operational prerequisite (a date filter is mandatory), but it does not describe pagination behavior, response shape (and no output schema exists), or validation/error behavior. Partial transparency that is acceptable for a simple read tool but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact clauses: the purpose comes first, then the critical precondition. There is zero filler and every word earns its place, with the action front-loaded ahead of the constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no annotations and no output schema, this definition is thin. It omits date format expectations, pagination semantics, and the meaning of filters such as is_realized and transaction_ids, and it provides no return-value guidance. An agent would need to guess or probe to invoke this tool correctly beyond the one date constraint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at only 14% (only per_page carries a description, '最大10000'), the description must compensate. It adds the key relational requirement for start_date and end_date that the schema omits, but it leaves account_id, is_realized, transaction_ids, page, and per_page's broader semantics unexplained, and no date format is specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '仕訳一覧を取得します' (retrieves the journal list). It is clear about what the tool does, and the word '一覧' (list) hints at the distinction from mfc_ca_getJournalById, but it does not explicitly differentiate from other siblings such as mfc_ca_getTransactions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to choose this tool over alternatives like getJournalById or getTransactions. The one genuinely useful usage signal is the precondition 'start_date または end_date のいずれかが必要' (either start_date or end_date is required), which tells the agent what makes a valid call, but there are no exclusions or sibling routing cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getReportsTransitionBalanceSheetB

貸借対照表の推移表(月別)を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes推移表の種類(例: monthly)
end_monthNo
fiscal_yearNo
include_taxNo
start_monthNo
with_sub_accountsNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description clearly presents a fetch operation (取得します) and indicates the monthly interval, so the primary read-only behavior is understandable. However, with no annotations and no output schema, it does not disclose response shape, required parameter behavior, or limitations, leaving a noticeable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single focused sentence with no filler, and the core object is front-loaded. It is concise and readable, though it is too minimal to carry the full burden of a six-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters, one required, low schema coverage, no output schema, and no annotations, one sentence is not enough for an agent to know all constraints. An agent would have to guess at parameter semantics and valid values for type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17%, with only type documented. The description's '月別' hint relates to type and possibly start_month/end_month, but it does not explain fiscal_year, include_tax, with_sub_accounts, or valid type values, so it fails to compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 取得します and the resource 貸借対照表の推移表(月別) make the operation unmistakable. It clearly distinguishes itself from sibling report tools by naming both balance sheet and monthly transition, separating it from getReportsTransitionProfitLoss and getReportsTrialBalanceBalanceSheet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to call this tool instead of the other getReports* siblings, nor are prerequisites such as fiscal year, office selection, or required report type mentioned. The only implied context is the report type in the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getReportsTransitionProfitLossC

損益計算書の推移表(月別)を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes推移表の種類(例: monthly)
end_monthNo
fiscal_yearNo
include_taxNo
start_monthNo
with_sub_accountsNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that the tool retrieves a report; it does not mention any required parameters, default period behavior, output shape, authentication needs, or whether the operation is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear Japanese sentence with no filler. The action and object are front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters, no output schema, no annotations, and a very brief description, important context is missing. An agent cannot reliably determine valid values for type, how date parameters interact, or what the response will contain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17%, and the tool description does not compensate. Only 'type' has a schema description; end_month, fiscal_year, include_tax, start_month, and with_sub_accounts are undocumented, and the description adds no meaningful meaning to them beyond the word 'monthly'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific action and resource: retrieving (取得します) the monthly transition table for the profit and loss statement (損益計算書の推移表). This is precise enough to distinguish it from balance-sheet and trial-balance report siblings, though it does not explicitly name those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to choose this tool over similar report tools such as mfc_ca_getReportsTrialBalanceProfitLoss or mfc_ca_getReportsTransitionBalanceSheet. There are no usage conditions, exclusions, or hints about required inputs like type.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getReportsTrialBalanceBalanceSheetB

貸借対照表の試算表(累計)を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
end_monthNoカレンダー月
start_dateNo
fiscal_yearNo
include_taxNo
start_monthNoカレンダー月
journal_typesNo
with_sub_accountsNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the operation is a retrieval ('取得します') and adds the cumulative ('累計') characteristic, which clarifies the data scope. However, it omits any details about permissions, side effects, or response behavior; thus it is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no filler; the key resource and cumulative nature are front-loaded. It is as concise as possible for what it states.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 optional parameters, no annotations, no output schema, and four report sibling tools, the description is too thin. It identifies the report but does not explain parameter semantics, filtering behavior, or output expectations, leaving substantial ambiguity for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (2 of 8 parameters), and the description does not compensate: it mentions no parameters, so end_date, start_date, fiscal_year, include_tax, journal_types, and with_sub_accounts remain unexplained. An agent cannot determine how to set the optional filters from this definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb '取得します' with a clear resource: '貸借対照表の試算表(累計)' (cumulative balance-sheet trial balance). This distinguishes it from siblings such as getReportsTrialBalanceProfitLoss and getReportsTransitionBalanceSheet, so an agent can identify what report it returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over the sibling report tools; it does not name alternatives or set conditions such as 'period/current accounting year' or exclusions. The only usage cue is the resource name, which is implicit rather than explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getReportsTrialBalanceProfitLossC

損益計算書の試算表(累計)を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
end_monthNoカレンダー月
start_dateNo
fiscal_yearNo
include_taxNo
start_monthNoカレンダー月
journal_typesNo
with_sub_accountsNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It hints at aggregation via '累計' (cumulative) but does not disclose the return format, whether date parameters are effectively required despite having zero required parameters, how date ranges are interpreted, or how tax/sub-account flags affect results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single Japanese sentence is efficient and front-loaded with the core purpose, with no wasted words. However, it borders on under-specification rather than deliberate concision, since critical usage and parameter details are entirely absent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 undocumented parameters, no output schema, and no annotations, the description is far from complete. It explains none of the parameters, date constraints, return values, or which offices/contexts it applies to, leaving an agent unable to construct a correct call with confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25%, with just start_month and end_month documented as 'calendar month.' The description adds nothing about the 8 parameters (end_date, end_month, start_date, fiscal_year, include_tax, start_month, journal_types, with_sub_accounts). With such low coverage, the description was expected to compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('取得' = retrieve) and resource ('損益計算書の試算表(累計)' = cumulative trial balance of the profit and loss statement), and the '累計' (cumulative) qualifier partially distinguishes it from the transition-oriented siblings. However, it does not explicitly differentiate from the balance-sheet or transition variants by explaining what 'trial balance' means as a report type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus the sibling report tools (mfc_ca_getReportsTrialBalanceBalanceSheet, mfc_ca_getReportsTransitionProfitLoss, etc.). There is no context about choosing trial-balance vs transition variants, no prerequisites, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getSubAccountsC

補助科目を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
availableNo省略/true=有効のみ、false=全件(有効+無効)。falseは『無効のみ』ではない点に注意

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only restates the operation of fetching sub-accounts and adds no information about return format, filtering behavior (beyond what the schema parameter describes), pagination, or required permissions. This is a minimal disclosure that adds little beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no redundant words or filler. It is front-loaded and efficient, though it may be too sparse to be considered fully polished. It is appropriately sized for a simple getter but sacrifices informativeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one optional parameter, and the schema fully covers parameter semantics, so the description does not need to explain much. However, the description lacks any usage context, behavioral details, or relationship to sibling tools. It is minimally viable but leaves gaps in an agent's ability to decide when and how to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents the only parameter 'available', including its semantics and the caution that false means 'all' rather than 'disabled only'. The tool description itself adds no parameter information, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '補助科目を取得します' states a clear verb ('取得' = retrieve) and resource ('補助科目' = sub-accounts), making the tool's purpose immediately understandable. However, it does not differentiate this tool from sibling tools such as mfc_ca_getAccounts or mfc_ca_getDepartments, so it earns a 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention use cases, prerequisites, or mention any sibling tools. An agent must infer usage solely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getTaxesC

税区分を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
availableNo省略/true=有効のみ、false=全件(有効+無効)。falseは『無効のみ』ではない点に注意

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, but it only states that a retrieval occurs. It omits the return format, default active/inactive handling, pagination, and any office or authentication preconditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, front-loaded sentence with no filler. It is as concise as the stated purpose allows.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should at least indicate what the response contains, but it does not. The one-line description is also insufficient to orient an agent among the many sibling getter tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of the single optional available parameter, including an important caveat that false does not mean 'only inactive.' The description itself adds no parameter meaning, so the coverage-based baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '税区分を取得します' clearly states a specific verb and resource: retrieving tax classifications. It does not explicitly distinguish this from sibling tools, though the resource name is sufficiently distinct from the other getter tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to prefer this tool or how it relates to the many sibling mfc_ca_get* tools. The one-sentence description gives only the most obvious implication and offers no exclusions, prerequisites, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getTermSettingsA

会計年度設定(税込/税抜・課税方式等)を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey the behavioral profile. The verb '取得' clearly indicates a read-only retrieval, but the description does not mention authentication requirements, potential errors, or any other operational behavior. It is minimally adequate but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the action and resource, then adds clarifying examples. Every word contributes meaning and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter retrieval tool with no output schema, the description states the resource and gives representative content examples. It is slightly vague on the full return structure due to the '等' (etc.), but is otherwise complete enough for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. There are no parameter semantics to clarify, and the description does not need to compensate for any schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('取得' / retrieve) and a specific resource ('会計年度設定' / fiscal year settings), with concrete examples of what is included. This clearly distinguishes it from sibling tools like mfc_ca_getTaxes or mfc_ca_getDepartments, which target different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusion criteria. An agent must infer the appropriate context from the tool name alone, especially given the large set of sibling getter tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getTradePartnersC

取引先を取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
availableNo省略/true=有効のみ、false=全件(有効+無効)。falseは『無効のみ』ではない点に注意

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of disclosing behavior. It only restates the tool's name/action with '取得します' and adds no context about side effects, return format, pagination, authentication, or read-only nature. The filter semantics are documented in the schema, not in the tool description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence with no filler or redundancy. It is appropriately sized for a simple getter and presents the core purpose immediately. While it is thin, it is not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one optional parameter, the description and schema together let an agent make a correct invocation. However, with no output schema and no annotations, the agent is left without return-format expectations, safety confirmation, or guidance on choosing this over sibling getters. The context is minimally functional but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the available parameter is clearly explained, including the nuance that false means 'all' rather than 'disabled only'. The description itself adds no parameter detail, but because the schema already handles parameter semantics thoroughly, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '取引先を取得します' clearly identifies the action (retrieve) and the resource (trade partners). It is distinct from siblings like mfc_ca_postTradePartners due to the verb, and from other getters by naming a specific resource. However, it does not explicitly contrast itself with related sibling getters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as mfc_ca_getAccounts or mfc_ca_getSubAccounts. There is also no mention of prerequisites, default behavior, or scenarios that would select this tool. The only usage-related detail lives in the parameter schema, not in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_getTransactionsB

連携サービスで収集された明細一覧を取得します(自動連携・手動とも)。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sideNo
orderNo
contentNo
end_dateYes
per_pageNo10〜1000
value_maxNo
value_minNo
start_dateYesYYYY-MM-DD。end_dateとの差366日以内
content_match_typeNo
connected_account_idNo
journalizing_statusesNo
connected_sub_account_idNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral disclosure burden. It communicates that this is a retrieval operation and identifies the data source, but it does not disclose side-effect status, pagination behavior, ordering, output shape, or any authentication/rate-limit considerations. This is too thin for a tool with no annotation safety net.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence with no filler. The core action and scope are front-loaded, and every word contributes to identifying what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a 13-parameter tool with no output schema and no annotations. A single purpose sentence is not enough for an agent to use filters correctly, understand return values, or know how this relates to sibling journal and transaction tools. The description leaves too many operational details unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 15%, and the description adds no parameter-level meaning. It neither explains required date semantics beyond the schema nor clarifies the many filter parameters such as side, order, content, journalizing_statuses, or pagination. It provides only general domain context for the returned transaction list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('取得します') and a specific resource ('連携サービスで収集された明細一覧'), so an agent can tell this fetches transaction details collected via the integration service. It does not explicitly contrast itself with siblings like mfc_ca_getJournals, but the resource scope is reasonably specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase '連携サービスで収集された明細一覧' implies this tool is for transaction details collected through linked services, and '(自動連携・手動とも)' clarifies it covers both automatic and manual collection. However, there is no explicit when-to-use versus alternatives guidance, no exclusion, and no mention of when to choose mfc_ca_getJournals instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_postJournalsB

仕訳を作成します(帳簿書き込み。要ユーザー承認)。

ParametersJSON Schema
NameRequiredDescriptionDefault
journalYes仕訳オブジェクト { transaction_date, journal_type: 'journal_entry'|'adjusting_entry', branches: [{debitor?, creditor?, remark?}], tags?, memo? }。invoice_kind は自由値を許容(公式書込み3値以外は検証実験用)

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full burden. It does disclose that this writes to books and requires user approval, covering the mutation and authorization aspects. However, it does not mention potential side effects, validation behavior, or the experimental invoice_kind handling beyond the schema note. Adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded with the action and the approval constraint, with zero filler. It is appropriately sized for a simple create tool and efficient, though it could afford a bit more context without hurting clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with a complex nested parameter and no output schema, the description is sparse. It lacks examples, required-field emphasis, error behavior, or relation to the other journal endpoints (get, put, delete). The schema provides structure but not usage context, leaving an agent under-informed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the journal object's structure and the invoice_kind note fully described in the schema. The description adds no parameter-specific guidance. Baseline 3 applies since the schema already carries the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Create journal entries (book write-in. Requires user approval)' – a clear verb and resource. The 'post' prefix and '作成' (create) make the action unambiguous relative to sibling update/delete tools. However, it does not explicitly name those alternatives, so differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use guidance or alternative tools are mentioned. The approval note ('要ユーザー承認') hints at an operational constraint but does not help an agent choose between this and putJournals or deleteJournals. It relies on naming conventions for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_postTradePartnersB

取引先を作成します。

ParametersJSON Schema
NameRequiredDescriptionDefault
trade_partnerYes取引先オブジェクト(code, name 等)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'creates' and does not mention idempotency, required permissions, duplicate handling, side effects, or response behavior. For a mutation tool with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, clear sentence with no filler or redundancy. It is appropriately sized for a simple create operation, though it is too terse to add much behavioral or contextual value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter operation with full schema coverage, the description is minimally sufficient for a basic call. However, there is no output schema and no annotations, and the description omits return values, error behavior, and any uniqueness or validation constraints, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single parameter trade_partner as an object containing code, name, etc., giving 100% schema description coverage. The description adds no parameter-specific meaning beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'creates a trade partner' (取引先を作成します). This clearly distinguishes it from read-only siblings such as mfc_ca_getTradePartners, so an agent can infer the operation type without additional context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives, no mention of exclusions, and no prerequisites. The agent must infer from the verb 'creates' that this is for new trade partners, but the description does not explicitly contrast it with the read or update sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_postTransactionJournalizeA

明細から仕訳を作成します(帳簿書き込み。要ユーザー承認)。相手科目account_idのみ必須。貸借方向・口座側科目・税区分・invoice_kindはMFが自動補完。

ParametersJSON Schema
NameRequiredDescriptionDefault
memoNo
tagsNo
remarkNo
tax_idNo
account_idYes相手勘定科目ID
invoice_kindNo公式書込み3値以外も送信可(検証実験用)
department_idNo
sub_account_idNo
transaction_idYes明細ID(URLエンコード済みのまま)
transaction_dateNo省略時は明細の取引日
trade_partner_codeNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and it delivers: '帳簿書き込み。要ユーザー承認' signals a mutating ledger write requiring user approval, and the auto-completion note explains that several fields will be populated by MF. It stops short of describing approval mechanics, reversibility, or error responses, so it is not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one tight sentence plus two short clarifications, with the core purpose, the required input, and the auto-completion behavior all front-loaded. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter, approval-gated write tool with no output schema or annotations, the description gives essential starting points but omits the approval workflow, success/failure results, and guidance against sibling journal tools. It is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (36%), and the description compensates partially by identifying account_id as the only user-supplied counterpart required and by grouping debit/credit direction, account-side subject, tax classification, and invoice_kind as automatically completed. It does not clarify memo, tags, remark, department_id, sub_account_id, or trade_partner_code.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: '明細から仕訳を作成します' (creates journal entries from transaction details), with a clear resource and ledger-write scope. It does not explicitly name or differentiate from sibling tools like mfc_ca_postJournals, so it misses the highest tier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is implicitly clear: use this to journalize an existing transaction by providing account_id, with user approval required. However, it never tells the agent when to choose this over siblings such as mfc_ca_postJournals or mfc_ca_postTransactions, nor 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.

mfc_ca_postTransactionsA

手動管理の連携サービスに明細を作成します(要ユーザー承認)。

ParametersJSON Schema
NameRequiredDescriptionDefault
transactionsYes
connected_account_idYes手動管理(is_manual: true)の連携サービスID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears the behavioral burden. It discloses the important side-effect that user approval is required and implies a mutating POST, but it does not describe failure modes, reversibility, or what happens on approval denial. This is helpful but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence carries the core action, target constraint, and a critical behavioral note. There is no filler or repeated schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter POST with a nested array and no output schema, the description gives the essential service type and approval context, and the schema supplies the structural requirements. It is adequate for constructing a call, but it leaves return-value and failure behavior unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: connected_account_id has a description, but the transactions array and its item fields (date, value, side, content, memo) have no descriptions. The tool description does not compensate by explaining transaction field meanings, date format, or value units.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('明細を作成' = create line items/details) and a specific target ('手動管理の連携サービス' = manually managed connected service), and it adds the user-approval requirement. It is distinguishable from the many get/report siblings by the manual-management context, though it does not explicitly contrast it with postJournals or postVouchers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The expression '手動管理の連携サービスに' is a clear context restriction: this tool is for creating details in a manually managed connected account, which the connected_account_id schema description reinforces. It does not name alternatives or give when-not-to-use guidance, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_postVouchersA

証憑をアップロードし仕訳に添付します(公式MCP未提供・要ユーザー承認)。file_paths を渡せばローカルファイルを自動でbase64化する。journal_id 省略時は孤立証憑になる(後から仕訳に紐づける手段はない)ので原則指定すること。

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathsNoローカルファイルの絶対パス(file_name/file_dataは自動生成)
journal_idNo添付先の仕訳ID
voucher_filesNobase64を直接渡す場合

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does substantial work: it discloses the user-approval requirement, automatic base64 conversion for file_paths, and the irreversible orphan-voucher consequence of omitting journal_id. It stops short of describing response/error behavior or what happens when journal_id is invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, dense sentences, with the main purpose front-loaded and each clause earning its place. The parenthetical "(公式MCP未提供・要ユーザー承認)" crams two facts into one bracket, which is slightly less structured than ideal but still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description covers the essentials: purpose, authorization requirement, the two input modes' behavior, and the critical pitfall. The only notable gap is the absence of return-value or failure-mode information, which matters for confirming a successful attachment.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, establishing a baseline of 3. The description adds meaning beyond the schema: it explains that file_paths triggers automatic base64 conversion (so the agent need not pre-encode) and warns that omitting journal_id permanently orphans the voucher — a consequence not visible in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: "証憑をアップロードし仕訳に添付します" (uploads vouchers and attaches them to journal entries). This clearly differentiates it from sibling write tools like mfc_ca_postJournals (creates journals) and mfc_ca_deleteVouchers (deletes vouchers).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: it notes the tool is not in the official MCP, requires user approval (要ユーザー承認), and instructs that journal_id should normally be specified. However, it does not explicitly name alternatives or state when-not-to-use it relative to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mfc_ca_putJournalsA

仕訳を更新します(全置換API・帳簿書き込み。要ユーザー承認)。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
journalYes仕訳オブジェクト { transaction_date, journal_type: 'journal_entry'|'adjusting_entry', branches: [{debitor?, creditor?, remark?}], tags?, memo? }。invoice_kind は自由値を許容(公式書込み3値以外は検証実験用)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior. It states that this is a mutation ('帳簿書き込み' = ledger write), that it performs a full replacement (overwriting the entire journal), and that user approval is required. This goes beyond a generic 'updates' and gives the agent a realistic sense of side effects and authorization needs, though it doesn't mention failure modes or potential data loss details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise Japanese sentence with no filler. The core verb is front-loaded, and the key qualifiers (full replacement, ledger write, user approval) are packed efficiently. Every word earns its place, making it easy to scan and understand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential behavioral aspects (update, full replacement, approval) but leaves out critical context: what 'id' means, what happens to omitted optional fields during full replacement, and what the response looks like (no output schema exists). Given the nested journal object and two required parameters, an agent would need more detail to call it correctly without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50% (journal has a description, id does not). The tool description adds no parameter guidance whatsoever—it doesn't explain that 'id' refers to the target journal's identifier or clarify the full-replacement semantics for missing journal fields. The description in the schema for 'journal' exists, but the tool itself provides zero parameter disambiguation, so it fails to compensate for the 50% coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('仕訳を更新します' = 'updates journals') and adds crucial detail ('全置換API' = full replacement API), which distinguishes it from creating (postJournals) or deleting (deleteJournals) operations. The verb+resource combo is unambiguous and immediately conveys the tool's role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for updating existing journals but provides no explicit comparison to alternatives like postJournals for creation or deleteJournals for removal. It does clarify that it's a full-replacement API, hinting it's not for partial updates, but lacks any 'use this when...' or 'instead of...' guidance. The 'requires user approval' note is a constraint, not a selection guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mf_full_infoB

このサーバーの設定情報(要求スコープ・コールバックポート等)を表示する。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'display' (表示), which implies a read-only operation, but it does not explicitly state side-effect safety, authentication requirements, or any other behavioral details. The description adds no information beyond the obvious action of showing configuration.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the verb and resource. Every word earns its place, with concrete examples (request scope, callback port) adding clarity without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and no output schema, the description is adequate. It tells the agent exactly what information will be displayed. However, it could optionally mention that it requires no arguments or that it is the first step before authentication, but given the tool's trivial nature, this is not a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing to document. The description does not need to add parameter info since the schema is empty. The baseline score of 4 is appropriate, reflecting that no parameter documentation is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool displays server configuration information (request scope, callback port, etc.) with a specific verb ('表示する' – display) and resource. It is not a tautology and gives concrete examples. However, it does not explicitly differentiate itself from sibling tools, though none of the siblings appear to overlap in function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description only states what it does, leaving the agent to infer that it is appropriate for checking server settings. No exclusions or alternative recommendations are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_officeC

保存済みトークンを削除する。

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys that this is a deletion operation but does not mention irreversibility, side effects on the current office/session, whether authentication is required, or what happens to related state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no redundancy or filler. It is front-loaded around the key action and resource, making it efficient for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is too sparse. It omits label semantics, expected return behavior, side effects, and any usage context, so an agent must make several assumptions before invoking it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema defines only a required 'label' string with no description and schema description coverage is 0%. The tool description never explains that 'label' identifies which saved token to delete or what values/formats are accepted; the mapping is only inferable from the phrase 'saved token.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The Japanese description '保存済みトークンを削除する。' ('Deletes saved token.') states a specific action and resource: deleting a saved token. It clearly identifies this as a removal operation and is distinct from read/auth sibling tools, though it does not explicitly differentiate itself from related office tools like use_office or list_offices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as use_office, authenticate, or auth_status. The description only states what it does, with no context about prerequisites, exclusions, or conditions that should trigger its use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

use_officeA

このセッションのアクティブな接続先事業者を切り替える(プロセス内メモリのみ。他セッション/他ウィンドウには影響しない)。

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYeslist_offices で表示される保存名

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It explicitly states that changes are in-process memory only and do not affect other sessions or windows, which is a crucial behavioral caveat. It does not cover invalid-label handling or return behavior, but the most important side-effect information is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the core action and then clarifies the scope with a short parenthetical. There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter state-changing tool, the description is complete: it states what action is performed, the scope of the change, and the non-persistence behavior. The parameter is fully documented in the schema via the reference to list_offices, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 the single parameter. The description does not add meaning beyond the schema, such as format requirements or examples, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: switching the active business operator for the current session. The scope is explicit (session-local), which distinguishes this from tools that manage saved offices or query current state, though it does not explicitly name a sibling as an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly communicates when the tool is used: to change the active business operator within the current session. It provides useful context about the session-scoped effect, though it does not explicitly state when-not-to-use or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3/5.0
Disambiguation4/5

Most tools have clear resource/action separation: journals, transactions, reports, master data, auth, and office management each have distinct targets. A few pairs like currentOffice vs list_offices or postJournals vs postTransactionJournalize have some boundary overlap, but the descriptions are precise enough to resolve most ambiguity.

Naming Consistency3/5

The dominant mfc_ca_get/post/put/delete + Resource pattern is readable and consistent within the core accounting tools. However, the server mixes styles: verbless mfc_ca_currentOffice, un-prefixed snake_case names like remove_office and list_offices, and bare verbs like authenticate.

Tool Count2/5

29 tools is a heavy surface and exceeds the 25+ threshold. Although the tools are grouped into clear subdomains such as journals, reports, master data, and auth, the high number of parallel getters and report variants creates meaningful selection overhead for agents.

Completeness3/5

Core workflows are well covered: authentication, office switching, journal CRUD, report retrieval, and master data reads are all present. Obvious gaps remain, however: trade partners have no update/delete, transactions have no update/delete, and vouchers lack list/get or an attach-orphan recovery path.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server and Claude plugin that enables interaction with freee APIs for accounting, human resources, invoicing, and more. It provides secure OAuth 2.0 authentication and integrates detailed API reference skills to support tasks like creating invoices and managing company data through natural language.
    26,098
    496
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that integrates with MoneyForward Cloud Invoice API v3 to automate the creation and management of quotes and invoices. It supports Japanese invoice system compliance, allowing users to handle partners, items, and billing through natural language.
    22
    3
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An unofficial MCP server that integrates with the hokan Insurance CRM API v2 to manage customer data, schedules, and tasks. It also features specialized tools for Japanese insurance law compliance, including intent confirmation and regulatory check generation.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kentaroajisaka/mf-full-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server