MCP coverage audit & gap analysis
Probes all available MCP tools, re-evaluates coverage of 50 persona use cases, detects new fields or tools, and regenerates the gap analysis report.
π― Skill purpose
Probes all available MCP tools, re-evaluates coverage of 50 persona use cases, detects new fields or tools, and regenerates the gap analysis report.
π What it produces
Updated coverage report (mcp-gap-analysis.md) with: change summary, new scores per use case, closed vs persistent gaps, and recalculated roadmap.
β‘ Benefit
Before
The MCP coverage analysis is static β it becomes obsolete as soon as a new MCP version is released, with no systematic update mechanism.
After
Always up-to-date coverage analysis, with automatic detection of improvements and immediate identification of impact on personas.
# MCP coverage audit β Automated gap analysis
## Purpose
Systematically re-evaluate MCP coverage against the 50 use cases of the 5 finance personas, detect improvements since the last analysis, and regenerate an up-to-date `scenarios/mcp-gap-analysis.md`.
To be run after every MCP update (new endpoints, new fields) or quarterly.
---
## Phase 1 β Inventory of available MCP tools
### Step 1.1 β Probe each tool to discover the actual fields
For each tool listed below, call it with minimal parameters and inspect the response structure. Note the fields actually returned.
```
TOOLS TO PROBE:
get_wallet_loads β note the fields returned
get_wallet_summary β note the fields returned
spendesk_analyze_spend β call with groupBy:supplier, period:last_month
β note accepted parameters + result structure
get_payables β call with limit:1
β note ALL fields (look especially for:
paymentDate, approvedAt, submittedAt, processingDays,
rejectionCount, disputeStatus, payableSubType)
get_payable_by_id β use the first ID found
β note fields vs get_payables
get_payable_attachments β call with a payableId
get_suppliers β call with limit:1
β look for: paymentTerms, preferredStatus, riskScore
get_supplier_by_id β use the first ID found
get_purchase_orders β call with limit:1
β look for: contractEndDate, autoRenewal,
noticePeriodDays, invoiceIds
get_requests β call with limit:1
get_request_by_id β use the first ID found
list_cards β call with limit:1
get_card β use the first ID found
get_transactions β call with limit:1 (card transactions, distinct from get_settlements)
get_cost_centers β note if budgetAmount or budgetId is present
get_users β call with limit:1
get_expense_categories β call
get_analytical_fields β call
get_analytical_field_values β use the first fieldId found
get_chart_of_accounts β call
get_settlements β call with limit:1
β look for: bankTransactionId, bankReference
list_companies β call (requires org token)
```
### Step 1.2 β Detect new, previously unknown tools
In addition to the tools listed above, check whether there are any Spendesk MCP tools not covered by this list. This includes:
- `get_budgets` or any tool with "budget" in the name
- `get_payable_events` or any tool with "events" / "history" / "audit"
- `get_bank_transactions` or any tool with "bank" / "transaction"
- `approve_*` or any write tool (write/create/update/approve)
Flag every newly discovered tool as **NEW** in your report.
### Step 1.3 β Build the inventory matrix
Build a summary table:
```
| Tool | Available | Notable fields | New fields vs previous analysis |
```
---
## Phase 2 β Evaluation of the 50 use cases
For each use case below, re-evaluate **current feasibility** based on the tools and fields discovered in Phase 1. Use the scoring grid:
```
Score 80β100 (β
A): Feasible with current tools, reliable result
Score 60β79 (π§ B): Feasible with a multi-step workaround or approximations
Score 40β59 (β οΈ C): Partially feasible, incomplete data
Score β€39 (β D): Not feasible, missing tools
```
### Evaluation grid for the 50 use cases
#### CFO (10 cases)
| # | Use case | Required tools | Previous score | Current score | Ξ |
|---|-------------|---------------|:---------------:|:------------:|:-:|
| C1 | Multi-entity treasury dashboard | list_companies, get_wallet_summary | 78 | ? | ? |
| C2 | Monthly spend flash report (top categories + YoY) | spendesk_analyze_spend | 87 | ? | ? |
| C3 | Budget vs Actual by cost center | **get_budgets** (missing) | 15 | ? | ? |
| C4 | AP cash flow forecast (30/60/90d) | get_payables, spendesk_analyze_spend | 70 | ? | ? |
| C5 | Blocked approvals (invoices > Xd) | get_payables (status + date filter) | 72 | ? | ? |
| C6 | Finance team KPIs (turnaround times, approval rate) | **Payable.approvedAt** (missing) | 20 | ? | ? |
| C7 | Multi-entity spend consolidation | list_companies, spendesk_analyze_spend | 78 | ? | ? |
| C8 | Supplier concentration risk (Pareto) | spendesk_analyze_spend, get_suppliers | 80 | ? | ? |
| C9 | Spend policy compliance | get_payables, list_cards | 68 | ? | ? |
| C10 | Automated board pack | Out of MCP scope | 10 | ? | ? |
#### Controller (10 cases)
| # | Use case | Required tools | Previous score | Current score | Ξ |
|---|-------------|---------------|:---------------:|:------------:|:-:|
| CT1 | Month-end close checklist | get_payables, get_settlements, spendesk_get_due_invoices | 87 | ? | ? |
| CT2 | Settlement reconciliation vs GL export | get_settlements | 85 | ? | ? |
| CT3 | Duplicate invoice detection | get_payables, get_supplier_by_id | 65 | ? | ? |
| CT4 | GL mapping validation | get_payables, get_chart_of_accounts | 73 | ? | ? |
| CT5 | Complete accounting export reconciliation | get_payables (date filters) | 87 | ? | ? |
| CT6 | Invoice audit trail (who approved, when) | **get_payable_events** (missing) | 15 | ? | ? |
| CT7 | Attachment validity control | get_payable_attachments | 87 | ? | ? |
| CT8 | FEC data preparation | get_payables, get_chart_of_accounts | 55 | ? | ? |
| CT9 | End-of-period accruals | get_payables | 78 | ? | ? |
| CT10 | Bank reconciliation | **get_bank_transactions** (missing) | 10 | ? | ? |
#### AP Manager (10 cases)
| # | Use case | Required tools | Previous score | Current score | Ξ |
|---|-------------|---------------|:---------------:|:------------:|:-:|
| AP1 | AP queue (priority invoices) | spendesk_get_due_invoices, get_suppliers | 83 | ? | ? |
| AP2 | Supplier onboarding audit | get_suppliers, get_payables | 85 | ? | ? |
| AP3 | Detailed supplier outstanding balance analysis | get_payables, get_suppliers | 87 | ? | ? |
| AP4 | Batch approval (approve N invoices) | **approve_payables** (missing) | 5 | ? | ? |
| AP5 | Payment SLA vs contractual terms | **Supplier.paymentTerms** (missing) | 55 | ? | ? |
| AP6 | At-risk suppliers (rejections, disputes) | **Payable.rejectionCount** (missing) | 20 | ? | ? |
| AP7 | Invoice β PO matching (3-way) | get_payables, get_purchase_orders | 72 | ? | ? |
| AP8 | DPO (Days Payable Outstanding) | get_payables | 70 | ? | ? |
| AP9 | Approved supplier catalog | get_suppliers | 88 | ? | ? |
| AP10 | Claim / duplicate detection | get_payables | 65 | ? | ? |
#### Finance Analyst (10 cases)
| # | Use case | Required tools | Previous score | Current score | Ξ |
|---|-------------|---------------|:---------------:|:------------:|:-:|
| FA1 | Spend analysis by department (MoM) | spendesk_analyze_spend Γ 3-6 months | 83 | ? | ? |
| FA2 | Category benchmark vs previous period | spendesk_analyze_spend | 83 | ? | ? |
| FA3 | Anomaly detection (spend outliers) | get_payables, spendesk_analyze_spend | 70 | ? | ? |
| FA4 | Supplier ROI | Out of Spendesk scope | 10 | ? | ? |
| FA5 | SaaS spend analysis + growth | get_payables (subscription), get_suppliers | 83 | ? | ? |
| FA6 | Spend by employee (top spenders) | spendesk_analyze_spend, get_users | 78 | ? | ? |
| FA7 | Tail spend (long-tail supplier analysis) | spendesk_analyze_spend, get_suppliers | 75 | ? | ? |
| FA8 | Year-end forecast (YTD extrapolation) | spendesk_analyze_spend | 73 | ? | ? |
| FA9 | Hidden cost analysis (bank fees) | **Payable.payableSubType** (missing) | 25 | ? | ? |
| FA10 | Multi-source finance reporting consolidation | list_companies, spendesk_analyze_spend | 78 | ? | ? |
#### Procurement (10 cases)
| # | Use case | Required tools | Previous score | Current score | Ξ |
|---|-------------|---------------|:---------------:|:------------:|:-:|
| P1 | Open PO tracking (% consumed, alerts) | get_purchase_orders | 87 | ? | ? |
| P2 | PO budget overrun alert | get_purchase_orders | 87 | ? | ? |
| P3 | Inactive POs (open without invoice > 60d) | get_purchase_orders, get_payables | 78 | ? | ? |
| P4 | Supplier purchase consolidation (negotiation) | spendesk_analyze_spend, get_suppliers | 85 | ? | ? |
| P5 | Maverick spend (off-PO spend) | get_payables, get_purchase_orders | 68 | ? | ? |
| P6 | Supplier due diligence | get_suppliers | 85 | ? | ? |
| P7 | Pending purchase requests (aging) | get_requests | 80 | ? | ? |
| P8 | Supplier concentration risk | spendesk_analyze_spend | 82 | ? | ? |
| P9 | Contract renewals (POs nearing term) | **PO.contractEndDate** (missing) | 55 | ? | ? |
| P10 | Purchasing category catalog | get_expense_categories, spendesk_analyze_spend | 80 | ? | ? |
---
## Phase 3 β Calculating overall coverage
```
For each persona, calculate:
Cases A (β₯80): X/10
Cases B (60-79): X/10
Cases C (40-59): X/10
Cases D (β€39): X/10
Average score: (sum of scores) / 10
Coverage (A+B): X/10
Overall coverage = (number of cases β₯60 out of 50) / 50 Γ 100
Compare with the previous analysis:
Previous coverage: 69%
Current coverage: X%
Change: +X pts
```
---
## Phase 4 β Detecting changes vs the previous analysis
### Compare tool by tool
```
For each tool inventoried in Phase 1:
Compare the fields returned with the "missing fields" listed in mcp-gap-analysis.md
For each previously identified missing field:
If the field NOW EXISTS β π’ GAP CLOSED
If the field is STILL absent β π΄ PERSISTENT GAP
For each newly discovered tool:
β β NEW TOOL: X β impacts use cases: [list]
```
### Assess the impact of new fields/tools
```
For each CLOSED GAP or NEW TOOL:
Identify the impacted use cases (refer to the Phase 2 grids)
Calculate the new score for these use cases
Explain why the score changed
```
---
## Phase 5 β Regenerating the mcp-gap-analysis.md report
Write the updated `scenarios/mcp-gap-analysis.md` file with:
### Structure of the report to produce
```markdown
# Spendesk MCP β Gap analysis by persona
> Version: [today's date]
> Previous version: [date of previous analysis]
> Coverage evolution: [X%] β [Y%] (+Z pts)
## Summary of changes since the last analysis
### Gaps closed (newly detected capabilities)
- [tool/field]: impact on [use cases]
### Newly detected gaps
- [missing tool/field]: impact on [use cases]
### Persistent gaps (not yet addressed)
- [tool/field]: X months without change
## Executive summary
[coverage table by persona β updated]
## Inventory of available MCP tools
[updated with actual fields]
## Analysis by persona
[updated with new scores]
## Gap taxonomy
[updated β remove closed gaps, add new ones]
## Recommended roadmap
[updated β recalculate phases based on remaining gaps]
## UX friction points
[updated if new points identified]
```
---
## Usage notes
- **Run this skill after every MCP release** to automatically detect new fields or tools
- **Estimated duration:** 15β25 minutes (MCP calls + analysis + generation)
- **Output:** updated `scenarios/mcp-gap-analysis.md` + summary of changes in chat
- **Tracking:** Each version of the report includes its date to allow historical tracking
## Example prompts
- "Run the MCP audit β the MCP was just updated with new fields"
- "Redo the MCP coverage analysis to see what's changed"
- "Are there any new Spendesk MCP tools available?"
How to install this skill
- 1Download the file
s00-mcp-coverage-audit.mdusing the button above. - 2Place the file in the
.claude/directory of your project (or~/.claude/for a global install).cp s00-mcp-coverage-audit.md .claude/s00-mcp-coverage-audit.md - 3Use in Claude Code β the skill is automatically discovered. Describe your need in natural language and Claude will apply the skill instructions.
.claude/settings.json with the tools get_payables, get_suppliers, get_purchase_orders, get_requests, get_cost_centers, get_users, get_settlements, get_wallet_summary, list_companies, spendesk_analyze_spend, spendesk_get_due_invoices, get_chart_of_accounts, get_expense_categories, get_analytical_fields, list_cards, get_wallet_loads, get_payable_attachments.