File: README.md
Claude for Financial Services
Reference agents, skills, and data connectors for the financial-services workflows we see most โ investment banking, equity research, private equity, and wealth management.
Everything here is available two ways from one source: install it as a Claude Cowork plugin, or deploy it through the Claude Managed Agents API behind your own workflow engine. Same system prompt, same skills โ you choose where it runs.
[!IMPORTANT]
Nothing in this repository constitutes investment, legal, tax, or accounting advice. These agents draft analyst work product โ models, memos, research notes, reconciliations โ for review by a qualified professional. They do not make investment recommendations, execute transactions, bind risk, post to a ledger, or approve onboarding; every output is staged for human sign-off. You are responsible for verifying outputs and for compliance with the laws and regulations that apply to your firm.
What's in the repo:
- Agents โ named, end-to-end workflow agents (Pitch Agent, Market Researcher, GL Reconciler, โฆ). Each ships as a Cowork plugin and as a Claude Managed Agent template you deploy via
/v1/agents. - Vertical plugins โ the underlying skills, slash commands, and data connectors, bundled by FSI vertical. Install these on their own if you just want
/comps,/dcf,/earningsand the connectors without a full agent.
Agents
Each agent is named for the workflow it runs. They're starting points: install the ones that match your work, then tune the prompts, skills, and connectors to how your firm does it.
Each agent plugin is self-contained โ it bundles the skills it uses, so installing the agent is all you need.
| Function | Agent | What it does |
|---|---|---|
| Coverage & advisory | Pitch Agent | Comps, precedents, LBO โ branded pitch deck, end to end |
| Meeting Prep Agent | Briefing pack before every client meeting | |
| Research & modeling | Market Researcher | Sector or theme โ industry overview, competitive landscape, peer comps, ideas shortlist |
| Earnings Reviewer | Earnings call + filings โ model update โ note draft | |
| Model Builder | DCF, LBO, 3-statement, comps โ live in Excel | |
| Fund admin & finance ops | Valuation Reviewer | Ingests GP packages, runs valuation template, stages LP reporting |
| GL Reconciler | Finds breaks, traces root cause, routes for sign-off | |
| Month-End Closer | Accruals, roll-forwards, variance commentary | |
| Statement Auditor | Audits LP statements before distribution | |
| Operations & onboarding | KYC Screener | Parses onboarding docs, runs the rules engine, flags gaps |
For Managed Agent deployment โ agent.yaml, leaf-worker subagents, steering-event examples, and per-agent security notes โ see managed-agent-cookbooks/.
Repository Layout
plugins/
agent-plugins/ # Named agents โ one self-contained plugin each
vertical-plugins/ # Skill + command bundles by FSI vertical, plus MCP connectors
partner-built/ # Partner-authored plugins (LSEG, S&P Global)
managed-agent-cookbooks/ # Claude Managed Agent cookbooks โ one dir per agent
claude-for-msft-365-install/ # Admin tooling to provision the Claude Microsoft 365 add-in
scripts/ # deploy-managed-agent.sh ยท check.py ยท validate.py ยท orchestrate.py ยท sync-agent-skills.pyGetting Started
Cowork
In Cowork, open Settings โ Plugins โ Add plugin and either:
- Paste this repo URL โ
https://github.com/anthropics/financial-servicesโ then pick the agents and verticals you want from the marketplace list, or - Upload a zip โ zip any directory under
plugins/(e.g.plugins/agent-plugins/pitch-agent/) and drop it in.
Claude Code
# Add the marketplace
claude plugin marketplace add anthropics/financial-services
# Core skills + connectors (install first)
claude plugin install financial-analysis@claude-for-financial-services
# Named agents โ pick the ones you want
claude plugin install pitch-agent@claude-for-financial-services
claude plugin install gl-reconciler@claude-for-financial-services
claude plugin install market-researcher@claude-for-financial-services
# Vertical skill bundles
claude plugin install investment-banking@claude-for-financial-services
claude plugin install equity-research@claude-for-financial-servicesOnce installed, agents appear in Cowork dispatch, skills fire automatically when relevant, and slash commands are available in your session (/comps, /dcf, /earnings, /ic-memo, โฆ).
Claude Managed Agents
export ANTHROPIC_API_KEY=sk-ant-...
scripts/deploy-managed-agent.sh gl-reconcilerEach template under managed-agent-cookbooks/ references the same system prompt and skills as its plugin counterpart. The deploy script resolves file references, uploads skills, creates leaf-worker subagents, and POSTs the orchestrator to /v1/agents. See scripts/orchestrate.py for a reference event loop that routes handoff_request events between agents via your own orchestration layer.
Research Preview: subagent delegation (
callable_agents) is a preview capability. See per-agent READMEs for security and handoff guidance.
How It Fits Together
| What it is | Where it lives | |
|---|---|---|
| Agents | Self-contained plugins that own a workflow end to end โ system prompt plus the skills it uses. Cowork and the Managed Agent wrapper both reference the same directory. | plugins/agent-plugins/<slug>/ |
| Skills | Domain expertise, conventions, and step-by-step methods Claude draws on automatically when relevant. Authored once in the verticals; each agent bundles a synced copy of the ones it needs. | plugins/vertical-plugins/<vertical>/skills/ (source) ยท plugins/agent-plugins/<slug>/skills/ (bundled) |
| Commands | Slash actions you trigger explicitly (/comps, /earnings, /ic-memo). |
plugins/vertical-plugins/<vertical>/commands/ |
| Connectors | MCP servers that wire Claude to your data โ terminals, research platforms, document stores. | plugins/vertical-plugins/financial-analysis/.mcp.json |
| Managed-agent wrappers | agent.yaml + depth-1 subagents + steering examples for headless deployment. |
managed-agent-cookbooks/<slug>/ |
Everything is file-based โ markdown and JSON, no build step.
Vertical Plugins
Start with financial-analysis โ it carries the shared modeling skills and all data connectors. Add verticals for the workflows you need.
| Plugin | What it adds |
|---|---|
| financial-analysis (core) | Comps, DCF, LBO, 3-statement, deck QC, Excel audit. All 11 data connectors. |
| investment-banking | CIMs, teasers, process letters, buyer lists, merger models, deal tracking. |
| equity-research | Earnings notes, initiations, model updates, thesis and catalyst tracking. |
| private-equity | Sourcing, screening, diligence checklists, IC memos, portfolio monitoring. |
| wealth-management | Client reviews, financial plans, rebalancing, reporting, TLH. |
| fund-admin | GL recon, break tracing, accruals, roll-forwards, variance commentary, NAV tie-out. |
| operations | KYC document parsing and rules-grid evaluation. |
| lseg (partner) | Bond RV, swap curves, FX carry, options vol, macro-rates monitoring on LSEG data. |
| sp-global (partner) | Tear sheets, earnings previews, funding digests on S&P Capital IQ. |
MCP Integrations
All connectors are centralized in the financial-analysis core plugin and shared across the rest.
| Provider | URL |
|---|---|
| Daloopa | https://mcp.daloopa.com/server/mcp |
| Morningstar | https://mcp.morningstar.com/mcp |
| S&P Global | https://kfinance.kensho.com/integrations/mcp |
| FactSet | https://mcp.factset.com/mcp |
| Moody's | https://api.moodys.com/genai-ready-data/m1/mcp |
| MT Newswires | https://vast-mcp.blueskyapi.com/mtnewswires |
| Aiera | https://mcp-pub.aiera.com |
| LSEG | https://api.analytics.lseg.com/lfa/mcp |
| PitchBook | https://premium.mcp.pitchbook.com/mcp |
| Chronograph | https://ai.chronograph.pe/mcp |
| Egnyte | https://mcp-server.egnyte.com/mcp |
| Box | https://mcp.box.com |
MCP access may require a subscription or API key from the provider.
Claude for Microsoft 365 โ Install Tooling
If your firm runs Claude inside Excel, PowerPoint, Word, and Outlook via the Microsoft 365 add-in, claude-for-msft-365-install/ is the admin tooling to provision it against your own cloud โ Vertex AI, Bedrock, or an internal LLM gateway โ instead of Anthropic's API.
It's a Claude Code plugin (not a Cowork plugin) that walks an IT admin through generating the customized add-in manifest, granting Azure admin consent, and writing per-user routing config via Microsoft Graph. Install with:
claude plugin install claude-for-msft-365-install@claude-for-financial-services
/claude-for-msft-365-install:setupThis is separate from the agents and vertical plugins above โ it's the on-ramp that gets the add-in deployed in a tenant, after which the agents and skills here are what runs inside it.
Making It Yours
These are reference templates โ they get better when you tune them to how your firm works.
- Swap connectors โ point
.mcp.jsonat your data providers and internal systems. - Add firm context โ drop your terminology, processes, and formatting standards into skill files.
- Bring your templates โ
/ppt-templateteaches Claude your branded PowerPoint layouts. - Adjust agent scope โ edit
agents/<slug>.mdto match how your team actually runs the workflow. - Add your own โ copy the structure for workflows we haven't covered.
Skill & Command Reference
financial-analysis โ core modeling, Excel, deck QC
| Skill | Command | Description |
|---|---|---|
| comps-analysis | /comps |
Comparable company analysis with trading multiples |
| dcf-model | /dcf |
DCF valuation with WACC and sensitivity analysis |
| lbo-model | /lbo |
Leveraged buyout model |
| 3-statement-model | /3-statement-model |
Populate 3-statement financial model templates |
| audit-xls | /debug-model |
Excel model audit โ formula tracing, hardcode detection, balance checks |
| clean-data-xls | โ | Normalize and clean tabular data in Excel |
| deck-refresh | โ | Re-link and refresh embedded charts/tables across a deck |
| competitive-analysis | /competitive-analysis |
Competitive landscape and market positioning |
| ib-check-deck | โ | QC presentations for errors and consistency |
| pptx-author | โ | Produce a .pptx file headlessly (Managed Agent mode) |
| xlsx-author | โ | Produce a .xlsx file headlessly (Managed Agent mode) |
| ppt-template-creator | /ppt-template |
Create reusable PPT template skills |
| skill-creator | โ | Guide for creating new skills |
investment-banking โ deal materials and execution
| Skill | Command | Description |
|---|---|---|
| strip-profile | /one-pager |
One-page company profiles for pitch books |
| pitch-deck | โ | Populate pitch deck templates with data |
| datapack-builder | โ | Build data packs from CIMs and filings |
| cim-builder | /cim |
Draft Confidential Information Memorandums |
| teaser | /teaser |
Anonymous one-page company teasers |
| buyer-list | /buyer-list |
Strategic and financial buyer universe |
| merger-model | /merger-model |
Accretion/dilution M&A analysis |
| process-letter | /process-letter |
Bid instructions and process correspondence |
| deal-tracker | /deal-tracker |
Track live deals, milestones, and action items |
equity-research โ coverage and publishing
| Skill | Command | Description |
|---|---|---|
| earnings-analysis | /earnings |
Post-earnings quarterly update reports |
| earnings-preview | /earnings-preview |
Pre-earnings scenario analysis and key metrics |
| initiating-coverage | /initiate |
Institutional-quality initiation reports |
| model-update | /model-update |
Update financial models with new data |
| morning-note | /morning-note |
Morning meeting notes and trade ideas |
| sector-overview | /sector |
Industry landscape and thematic reports |
| thesis-tracker | /thesis |
Maintain and update investment theses |
| catalyst-calendar | /catalysts |
Track upcoming catalysts across coverage |
| idea-generation | /screen |
Stock screening and idea sourcing |
private-equity โ sourcing through portfolio ops
| Skill | Command | Description |
|---|---|---|
| deal-sourcing | /source |
Discover companies, check CRM, draft founder outreach |
| deal-screening | /screen-deal |
Quick pass/fail on inbound CIMs and teasers |
| dd-checklist | /dd-checklist |
Diligence checklists by workstream |
| dd-meeting-prep | /dd-prep |
Prep for management presentations and expert calls |
| unit-economics | /unit-economics |
ARR cohorts, LTV/CAC, net retention, revenue quality |
| returns-analysis | /returns |
IRR/MOIC sensitivity tables |
| ic-memo | /ic-memo |
Investment committee memo drafting |
| portfolio-monitoring | /portfolio |
Track portfolio company KPIs and variances |
| value-creation-plan | /value-creation |
Post-close 100-day plans and EBITDA bridges |
| ai-readiness | /ai-readiness |
Assess a portfolio company's AI readiness |
wealth-management โ advisor workflows
| Skill | Command | Description |
|---|---|---|
| client-review | /client-review |
Prep for client meetings with performance and talking points |
| financial-plan | /financial-plan |
Retirement, education, estate, and cash-flow projections |
| portfolio-rebalance | /rebalance |
Allocation drift analysis and tax-aware rebalancing |
| client-report | /client-report |
Client-facing performance reports |
| investment-proposal | /proposal |
Proposals for prospective clients |
| tax-loss-harvesting | /tlh |
Identify TLH opportunities and manage wash sales |
Contributing
Everything here is markdown and YAML. Fork, edit, PR. For new content:
- New skill โ add it under
plugins/vertical-plugins/<vertical>/skills/, then runpython3 scripts/sync-agent-skills.pyto propagate to any agent that bundles it. - New agent โ
plugins/agent-plugins/<slug>/(withagents/<slug>.md+skills/) and a matchingmanaged-agent-cookbooks/<slug>/. - Run
python3 scripts/check.pybefore pushing โ it lints every manifest, verifies all cross-file references resolve, and fails if any bundled skill has drifted from its vertical source.
License
File: claude-for-msft-365-install/examples/python-bootstrap/README.md
Bootstrap endpoint โ Python reference
A minimal FastAPI implementation of the Claude in Office /bootstrap endpoint.
It validates the caller's Entra ID token and returns per-employee skills andmcp_servers based on a simple first-match RBAC table.
Run against your real Entra tenant
pip install -r requirements.txt
# Find your tenant ID:
python get_tenant_id.py [email protected]
export TENANT_ID=<your-tenant-guid>
python app.pyRun locally with a fake token
pip install -r requirements.txt
export TENANT_ID=dev-tenant
TOKEN=$(python mint_dev_token.py --oid alice --group investment-banking)
DEV_JWKS_PATH=dev_jwks.json python app.py &
curl -H "Authorization: Bearer $TOKEN" \
-H "X-Claude-User-Agent: claude-word/1.0.0" \
http://127.0.0.1:8080/bootstrapCustomize
Everything you need to change lives in config.py โ app.py should not need edits.
- Edit
SKILLSandMCP_SERVERSโ the full catalog you can hand out. - Edit
RULESโ first matching rule wins; the emptywhen: {}at the bottom is the default. - Replace the placeholder group/user names in
RULESwith your real Entra Object IDs (GUIDs). - Group membership is read from the token's
groupsclaim. If your tenant
doesn't emit it, swap thegroups = ...line inapp.pyfor a lookup against
your internal directory. - Rules can be scoped per Office host with
"app": "word" | "excel" | "powerpoint",
parsed from theX-Claude-User-Agentheader the add-in sends. - The
groupsclaim is not in Entra tokens by default. Enable it under
App registration โ Token configuration โ Add groups claim for your app. - Swap the in-memory
RULESfor your real source of truth (DB, config service, etc.).
Security
DEV_JWKS_PATH lets the server trust a self-issued signing key instead of
Microsoft's. It refuses to start unless bound to 127.0.0.1. Never set it
in a deployed environment.
File: claude-for-msft-365-install/README.md
Claude for Office โ Direct Cloud Setup
Admin tooling for configuring the Claude Office add-in to call your own cloud
(Vertex AI, Bedrock, or an LLM gateway) instead of Anthropic's API.
Install
claude plugin marketplace add anthropics/financial-services
claude plugin install claude-for-msft-365-install@claude-for-financial-servicesThen inside the session: /claude-for-msft-365-install:setup
Update
Pull the latest version of the plugin:
claude plugin update claude-for-msft-365-install@claude-for-financial-servicesRestart the session to apply. Re-run /claude-for-msft-365-install:setup only
if you need to regenerate the manifest with new options.
Bootstrap
For per-user MCP servers, skills, or dynamic config, host a bootstrap endpoint
and point the add-in at it:
claude plugin marketplace add anthropics/financial-services # if not already added
claude plugin install claude-for-msft-365-install@claude-for-financial-servicesThen inside the session: /claude-for-msft-365-install:bootstrap
Commands
| Command | What it does |
|---|---|
/claude-for-msft-365-install:setup |
Interactive wizard โ provisions cloud resources, admin consent, writes manifest |
/claude-for-msft-365-install:manifest |
Generate the customized add-in manifest XML |
/claude-for-msft-365-install:consent |
Azure admin consent URL for the add-in's app registration |
/claude-for-msft-365-install:update-user-attrs |
Write per-user config via Microsoft Graph extension attributes |
/claude-for-msft-365-install:bootstrap |
Build the bootstrap endpoint โ per-user MCP servers, skills, dynamic config |
/claude-for-msft-365-install:debug |
Diagnose deployment issues โ stale config, connect failures, missing add-in |
/claude-for-msft-365-install:export-data |
Export a copy of a user's chat history, skills, and MCP registrations |
Exporting user data
Chat history, uploaded skills, MCP registrations, memory, and settings live in browser
storage on the user's own machine โ there is no server-side copy.
The export scripts are read only: they read Office's storage and write
only to the folder you name. They never modify, move, or delete anything in
Office. With no arguments they just print what they found.
./scripts/export-addin-data.sh # macOS: list
./scripts/export-addin-data.sh --out ~/claude-export.\scripts\export-addin-data.ps1 # Windows: list
.\scripts\export-addin-data.ps1 -Out C:\claude-exportChanging the add-in does not move or delete the data. Storage is keyed by
the origin the add-in is served from, not by add-in ID, so replacing the
manifest, reinstalling, or moving between a sideloaded manifest and the store
listing all leave it in place. Export before a machine is rebuilt, or โ on
Windows especially โ before anyone clears the Office add-in cache, sinceWef holds the add-in's storage as well as the manifest cache.
See /claude-for-msft-365-install:export-data for the exact on-disk paths and
what to check when history looks missing.
File: managed-agent-cookbooks/pitch-agent/README.md
Pitch Agent โ managed-agent template
Overview
Comps, precedents, LBO โ branded pitch deck, end to end. Same source as the pitch-agent Cowork plugin โ this directory is the Managed Agent cookbook for POST /v1/agents.
Deploy
export ANTHROPIC_API_KEY=sk-ant-...
export CAPIQ_MCP_URL=... DALOOPA_MCP_URL=...
../../scripts/deploy-managed-agent.sh pitch-agentSteering events
Security & handoffs
Task-decomposition split โ less about untrusted inputs (data comes from CapIQ/Daloopa MCPs), more about parallelism and artifact isolation. Exactly one worker holds Write:
| Leaf | Tools | Connectors |
|---|---|---|
researcher |
Read, Grep |
CapIQ, Daloopa (read-only) |
modeler |
Read, Bash (sandboxed) |
CapIQ, Daloopa (read-only) |
deck-writer (Write-holder) |
Read, Write, Edit |
None |
Artifacts land in ./out/pitch-<target>.pptx and ./out/model.xlsx via pptx-author / xlsx-author.
Handoff: to rebuild the model after a thesis change, the orchestrator emits a handoff_request for model-builder; scripts/orchestrate.py (or your workflow engine) routes it as a new steering event. See the script for the allowlist + payload-validation pattern.
File: managed-agent-cookbooks/month-end-closer/README.md
Month-End Closer โ managed-agent template
Overview
Accruals, roll-forwards, variance commentary. Same source as the month-end-closer Cowork plugin โ this directory is the Managed Agent cookbook for POST /v1/agents.
Deploy
export ANTHROPIC_API_KEY=sk-ant-...
export GL_MCP_URL=...
../../scripts/deploy-managed-agent.sh month-end-closerSteering events
Security & handoffs
Supporting invoices and vendor statements are untrusted. Three-tier isolation:
| Tier | Touches untrusted docs? | Tools | Connectors |
|---|---|---|---|
ledger-reader |
Yes | Read, Grep only |
None |
rollforward / Orchestrator |
No | Read, Grep, Glob, Agent |
internal-gl (read-only) |
poster (Write-holder) |
No | Read, Write, Edit |
None |
poster produces ./out/close-package-<entity>-.xlsx. JE drafts are staged, not posted to the GL.
Handoff: receives handoff_request events from gl-reconciler with verified breaks to fold into close commentary.
File: managed-agent-cookbooks/model-builder/README.md
Model Builder โ managed-agent template
Overview
DCF, LBO, 3-statement, comps โ built as a file artifact. Same source as the model-builder Cowork plugin โ this directory is the Managed Agent cookbook for POST /v1/agents.
Deploy
export ANTHROPIC_API_KEY=sk-ant-...
export CAPIQ_MCP_URL=... DALOOPA_MCP_URL=...
../../scripts/deploy-managed-agent.sh model-builderSteering events
Security & handoffs
Task-decomposition split โ inputs come from trusted MCPs, so the split is about artifact isolation and re-verification. Exactly one worker holds Write:
| Leaf | Tools | Connectors |
|---|---|---|
data-puller |
Read, Grep |
CapIQ, Daloopa (read-only) |
builder (Write-holder) |
Read, Write, Edit, Bash (sandboxed) |
None |
auditor |
Read, Grep |
None |
auditor re-checks ties and balances after builder writes ./out/model.xlsx.
Handoff: when invoked from earnings-reviewer or pitch-agent, the calling agent's handoff_request is routed here by scripts/orchestrate.py.
File: managed-agent-cookbooks/meeting-prep-agent/README.md
Meeting Prep Agent โ managed-agent template
Overview
Briefing pack before every client meeting. Same source as the meeting-prep-agent Cowork plugin โ this directory is the Managed Agent cookbook for POST /v1/agents.
Deploy
export ANTHROPIC_API_KEY=sk-ant-...
export CRM_MCP_URL=... CAPIQ_MCP_URL=...
../../scripts/deploy-managed-agent.sh meeting-prep-agentSteering events
See steering-examples.json. Typically kicked from a calendar event by your workflow engine.
Security & handoffs
Client-provided documents and inbound emails are untrusted. Three-tier split:
| Tier | Touches untrusted docs? | Tools | Connectors |
|---|---|---|---|
profiler |
No | Read, Grep |
CRM, CapIQ (read-only) |
news-reader |
Yes | Read, Grep only |
None |
pack-writer (Write-holder) |
No | Read, Write, Edit |
None |
pack-writer produces ./out/briefing-<client>.pptx; it never opens client-provided content directly.
Not guaranteed: this pack is for the advisor, not the client. No client-facing send.
File: managed-agent-cookbooks/market-researcher/README.md
Market Researcher โ managed-agent template
Overview
Sector or theme โ industry overview โ competitive landscape โ peer comps โ ideas shortlist โ research note. Same source as the market-researcher Cowork plugin โ this directory is the Managed Agent cookbook for POST /v1/agents.
Deploy
export ANTHROPIC_API_KEY=sk-ant-...
export CAPIQ_MCP_URL=... FACTSET_MCP_URL=...
../../scripts/deploy-managed-agent.sh market-researcherSteering events
See steering-examples.json. Kick from a research-queue event or fan out across a coverage map.
Security & handoffs
Third-party reports and issuer materials are untrusted. Three-tier isolation:
| Tier | Touches untrusted docs? | Tools | Connectors |
|---|---|---|---|
sector-reader |
Yes | Read, Grep only |
None |
comps-spreader / Orchestrator |
No | Read, Grep, Glob, Agent |
CapIQ, FactSet (read-only) |
note-writer (Write-holder) |
No | Read, Write, Edit |
None |
sector-reader returns length-capped, schema-validated JSON. note-writer produces ./out/primer-<sector>.docx (and .pptx if slides requested).
Handoff: to model a single name surfaced in the ideas shortlist, emit a handoff_request for model-builder; scripts/orchestrate.py routes it as a new steering event.
File: managed-agent-cookbooks/kyc-screener/README.md
KYC Screener โ managed-agent template
Overview
Parses onboarding docs, runs the rules engine, screens sanctions/PEP, flags gaps. Same source as the kyc-screener Cowork plugin โ this directory is the Managed Agent cookbook for POST /v1/agents.
Deploy
export ANTHROPIC_API_KEY=sk-ant-...
export SCREENING_MCP_URL=...
../../scripts/deploy-managed-agent.sh kyc-screenerSteering events
Security & handoffs
Onboarding documents are untrusted. Three-tier isolation:
| Tier | Touches untrusted docs? | Tools | Connectors |
|---|---|---|---|
doc-reader |
Yes | Read, Grep only |
None |
rules-engine / Orchestrator |
No | Read, Grep, Glob, Agent |
screening (read-only) |
escalator (Write-holder) |
No | Read, Write, Edit |
None |
doc-reader returns length-capped, schema-validated JSON. escalator produces ./out/escalation-.xlsx.
Not guaranteed: this agent recommends a risk rating; the compliance officer decides.
File: managed-agent-cookbooks/gl-reconciler/README.md
GL Reconciler โ managed-agent template
Overview
Finds breaks between general ledger and subledger for a trade date and set of asset classes, traces root cause, and produces an exception report for controller sign-off.
Same source as the gl-reconciler Cowork plugin โ this directory is the Managed Agent cookbook for POST /v1/agents.
Deploy
export ANTHROPIC_API_KEY=sk-ant-...
export GL_MCP_URL=... # read-only GL MCP
export SUBLEDGER_MCP_URL=... # read-only subledger MCP
../../scripts/deploy-managed-agent.sh gl-reconcilerSteering events
See steering-examples.json. Kick a session with a trade date and asset-class list; follow-up events can re-trace a single break.
Security & handoffs
This agent reads counterparty/custodian statements โ documents authored by outsiders that may carry adversarial instructions. The template is structured so a payload in one of those documents cannot reach a shell, a write tool, or a firm system:
| Tier | Touches untrusted docs? | Tools | Connectors |
|---|---|---|---|
reader |
Yes | Read, Grep only |
None |
| Orchestrator | No | Read, Grep, Glob, Agent |
Read-only GL + subledger MCPs |
resolver (Write-holder) |
No | Read, Write, Edit |
None |
The reader returns length-capped, schema-validated JSON only (validated by scripts/validate.py). The critic independently re-verifies each break against trusted sources before the orchestrator hands the set to resolver. The resolver writes the exception report to ./out/; it never opens an outsider file.
Handoff: to feed verified breaks into Month-End Closer, the orchestrator emits a handoff_request for month-end-closer in its final output; scripts/orchestrate.py (or your Temporal/Airflow worker) routes it as a new steering event. See the script for the allowlist + payload-validation pattern.
Not guaranteed: none of this writes to a system of record. Ledger adjustments require human approval outside the agent.