FIS IntelliMatch MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FIS IntelliMatch MCP ServerShow me all aged breaks older than 5 days in USD"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FIS IntelliMatch MCP Server for MS SQL
A Model Context Protocol (MCP) server that connects AI assistants directly to your FIS IntelliMatch SQL Server database for day-to-day BAU (Business As Usual) operations.
Security first: All queries run as parameterized statements. Only
SELECTis permitted — write operations, DDL, and SQL comments are blocked at the guard layer. Zero npm vulnerabilities.
Table of Contents
Related MCP server: MCP SQL Server Data Warehouse Connector
What It Does
Gives your AI assistant (via Cline, Roo Code, or Claude Desktop) direct, read-only access to IntelliMatch data so you can ask questions like:
"Show me all aged breaks older than 5 days in USD"
"What is the match rate for today's recon?"
"Did all overnight jobs complete successfully?"
"Find the item with reference TXN-20240613-001"
"Generate a daily BAU summary for today"
Prerequisites
Requirement | Minimum Version | Notes |
Node.js | 20.x LTS | |
npm | 10.x | Bundled with Node 20 |
TypeScript | 5.x | Installed as dev dependency |
SQL Server | 2016+ | IntelliMatch database |
VS Code | 1.85+ | For Cline / Roo Code |
Check your Node version:
node --version # should print v20.x.x or higher
npm --version # should print 10.x.x or higherInstallation
1. Clone or copy the project
# If you received this as a zip, extract to your preferred location, e.g.:
C:\NewInitiatives\mcp\mcp-mssql\2. Install dependencies
Open a terminal in the project folder and run:
npm installExpected output:
added 167 packages, and audited 168 packages
found 0 vulnerabilitiesConfiguration
1. Create your .env file
Copy the example file and fill in your credentials:
# Windows
copy .env.example .env
# PowerShell
Copy-Item .env.example .envOpen .env and set your values:
# ── SQL Server Connection ──────────────────────────────────────────────────────
MSSQL_SERVER=your-sql-server-hostname
MSSQL_DATABASE=IntelliMatch
MSSQL_USER=im_readonly_user
MSSQL_PASSWORD=your_secure_password
MSSQL_PORT=1433
# Encryption (recommended: true for production)
MSSQL_ENCRYPT=true
# Set true only for self-signed / dev certificates
MSSQL_TRUST_CERT=false
# ── Table Name Overrides (only change if your schema differs) ──────────────────
IM_TBL_ITEM=dbo.ITEM
IM_TBL_MATCH=dbo.MATCH_RESULT
IM_TBL_EXCEPTION=dbo.EXCEPTION
IM_TBL_RECON_GROUP=dbo.RECON_GROUP
IM_TBL_JOB_LOG=dbo.JOB_LOG
IM_TBL_ERROR_LOG=dbo.ERROR_LOG
IM_TBL_DATA_LOAD=dbo.DATA_LOAD_LOG
IM_TBL_AUDIT_LOG=dbo.AUDIT_LOG
# ── Query Safety ───────────────────────────────────────────────────────────────
MAX_ROWS=500Tip: The
.envfile is never committed. Keep credentials out of source control.
2. Verify your SQL Server connectivity
# Quick connectivity test using sqlcmd (if installed)
sqlcmd -S your-server -d IntelliMatch -U im_readonly_user -Q "SELECT @@VERSION"3. Recommended SQL Server permissions
Grant your service account the minimum required permissions:
-- Run as DBA on the IntelliMatch database
CREATE LOGIN im_readonly_user WITH PASSWORD = 'your_secure_password';
USE IntelliMatch;
CREATE USER im_readonly_user FOR LOGIN im_readonly_user;
-- Grant read-only access to the IntelliMatch schema
ALTER ROLE db_datareader ADD MEMBER im_readonly_user;
-- Optional: allow viewing execution plans
GRANT SHOWPLAN TO im_readonly_user;Build & Run
Build (compile TypeScript → JavaScript)
npm run buildOutput is written to the dist/ folder. Compiled once; run repeatedly without rebuilding unless source changes.
Test the server manually
npm startThe server starts and listens on stdin/stdout (MCP protocol). You will see:
FIS IntelliMatch MCP server started (19 tools available)Press Ctrl+C to stop.
Development mode (no build step required)
npm run devUses tsx to run TypeScript directly — useful during development.
VS Code Integration — Cline Plugin
Cline is an AI coding assistant for VS Code that supports MCP servers.
Step 1 — Install Cline
Open VS Code
Press
Ctrl+Shift+Xto open ExtensionsSearch for Cline (publisher:
saoudrizwan)Click Install
Step 2 — Open Cline MCP Settings
Option A — Via the Cline UI:
Click the Cline icon in the VS Code sidebar
Click the MCP Servers icon (plug icon) in the Cline panel
Click Edit MCP Settings
Option B — Edit the settings file directly:
Open this file in VS Code:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.jsonPowerShell shortcut:
code "$env:APPDATA\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json"Step 3 — Add the IntelliMatch MCP Server
Add the following entry inside the mcpServers object. Replace the path and credentials:
{
"mcpServers": {
"intellimatch-mssql": {
"command": "node",
"args": ["C:\\NewInitiatives\\mcp\\mcp-mssql\\dist\\index.js"],
"env": {
"MSSQL_SERVER": "your-sql-server-hostname",
"MSSQL_DATABASE": "IntelliMatch",
"MSSQL_USER": "im_readonly_user",
"MSSQL_PASSWORD": "your_secure_password",
"MSSQL_PORT": "1433",
"MSSQL_ENCRYPT": "true",
"MSSQL_TRUST_CERT": "false",
"MAX_ROWS": "500"
},
"disabled": false,
"alwaysAllow": []
}
}
}Note: Use double backslashes
\\in JSON path strings on Windows.
Step 4 — Verify in Cline
Reload VS Code (
Ctrl+Shift+P→ Developer: Reload Window)Open Cline panel → MCP Servers
You should see intellimatch-mssql listed with a green indicator
Click the server name to see all 19 available tools
Step 5 — Test in Cline chat
In the Cline chat input, type:
Use the im_test_connection tool to check the IntelliMatch database connectionVS Code Integration — Roo Code Plugin
Roo Code (formerly Roo-Cline) is a Cline fork with additional features and also supports MCP servers.
Step 1 — Install Roo Code
Open VS Code
Press
Ctrl+Shift+XSearch for Roo Code (publisher:
RooVeterinaryInc)Click Install
Step 2 — Open Roo Code MCP Settings
Option A — Via Roo Code UI:
Click the Roo Code icon in the VS Code sidebar
Click the Settings (gear) icon
Select MCP Servers → Edit MCP Settings
Option B — Edit the settings file directly:
%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.jsonPowerShell shortcut:
code "$env:APPDATA\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json"Step 3 — Add the IntelliMatch MCP Server
The JSON format is identical to Cline:
{
"mcpServers": {
"intellimatch-mssql": {
"command": "node",
"args": ["C:\\NewInitiatives\\mcp\\mcp-mssql\\dist\\index.js"],
"env": {
"MSSQL_SERVER": "your-sql-server-hostname",
"MSSQL_DATABASE": "IntelliMatch",
"MSSQL_USER": "im_readonly_user",
"MSSQL_PASSWORD": "your_secure_password",
"MSSQL_PORT": "1433",
"MSSQL_ENCRYPT": "true",
"MSSQL_TRUST_CERT": "false",
"MAX_ROWS": "500"
},
"disabled": false,
"alwaysAllow": []
}
}
}Step 4 — Configure Roo Code Modes (Optional)
Roo Code supports custom AI modes. You can create an IntelliMatch BAU mode:
Open Roo Code settings → Modes
Click Add Custom Mode
Fill in:
Name:
IntelliMatch BAUSystem Prompt:
You are an IntelliMatch reconciliation analyst assistant. You have access to the IntelliMatch MSSQL database via MCP tools. Always use parameterised tool calls. Never guess data — query it. For break investigation, start with im_get_break_details, then cross-reference with im_search_items.
Enable the intellimatch-mssql MCP server for this mode
Step 5 — Verify in Roo Code
Reload VS Code
Open Roo Code panel → check MCP server status shows green
Test with: "Run im_test_connection to check the IntelliMatch DB"
Claude Desktop Integration
If you use Claude Desktop alongside VS Code:
Edit %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"intellimatch-mssql": {
"command": "node",
"args": ["C:\\NewInitiatives\\mcp\\mcp-mssql\\dist\\index.js"],
"env": {
"MSSQL_SERVER": "your-sql-server-hostname",
"MSSQL_DATABASE": "IntelliMatch",
"MSSQL_USER": "im_readonly_user",
"MSSQL_PASSWORD": "your_secure_password",
"MSSQL_PORT": "1433",
"MSSQL_ENCRYPT": "true",
"MSSQL_TRUST_CERT": "false"
}
}
}
}Restart Claude Desktop after saving.
Available Tools (19)
Connection & Discovery
Tool | Description |
| Test DB connectivity; returns server name, DB name, SQL version |
| Show current config (table mappings, row limits — no password) |
| List all tables in a schema (default: dbo) |
| Show columns, types, and nullability of any table |
Reconciliation
Tool | Description |
| List all recon groups with type and active status |
| Match/unmatched/exception counts with match % for a date |
| Match rates and break amounts by currency for a date range |
Breaks & Exceptions
Tool | Description |
| Get open breaks filtered by date, entity, currency, status |
| Breaks older than N days — for escalation reviews |
| Full details of a specific break by exception ID |
| Break count by age bucket (0-2, 3-5, 6-10, 11-30, 30+ days) |
Items & Transactions
Tool | Description |
| Search items by reference, date, entity, currency, or status |
| Full item details including match result and linked break |
| All unmatched items for a date with optional filters |
| Complete BAU daily summary: recon status + open breaks overview |
Job Monitoring
Tool | Description |
| Batch job status for a date — verify overnight runs completed |
| Data load/file ingestion status with record counts |
| Recent errors/warnings from the error log |
| Jobs currently running or waiting |
Ad-hoc Query
Tool | Description |
| Run any custom SELECT query with row cap and SELECT-only guard |
Table Name Customisation
IntelliMatch deployments vary. If your schema uses different table names, override them in .env (or in the env block of your MCP config):
# Example: if your items table is called dbo.IM_ITEMS
IM_TBL_ITEM=dbo.IM_ITEMS
# Example: if breaks are in a different schema
IM_TBL_EXCEPTION=reconciliation.BREAKSUse im_list_tables to discover what tables exist in your database, then im_describe_table to inspect columns before configuring overrides.
Troubleshooting
MCP server not appearing in Cline / Roo Code
Confirm the
dist/index.jspath exists: runnpm run buildfirstUse forward-slash paths in JSON on Windows:
C:/NewInitiatives/mcp/mcp-mssql/dist/index.jsor escape backslashes:C:\\NewInitiatives\\mcp\\mcp-mssql\\dist\\index.jsReload VS Code after editing settings JSON
Connection failed / timeout
Error executing "im_test_connection": ConnectionError: Failed to connectVerify the SQL Server is reachable:
Test-NetConnection your-server -Port 1433Check firewall rules allow port 1433 from your machine
Confirm
MSSQL_USERandMSSQL_PASSWORDare correctIf using Windows Auth (no user/password), remove
MSSQL_USER/MSSQL_PASSWORDfrom env —mssqlwill use the process identity
Self-signed certificate error
Error: The certificate chain was issued by an authority that is not trustedSet in your env:
MSSQL_TRUST_CERT=trueTable not found / invalid object name
Invalid object name 'dbo.ITEM'Your IntelliMatch deployment uses different table names. Run:
im_list_tables → discover tables in dbo schema
im_describe_table → verify column namesThen set the correct names via IM_TBL_* environment variables.
Query returns no rows but data exists
Check
VALUE_DATEformat — must beYYYY-MM-DDVerify the date column matches your IntelliMatch schema (some use
SETTLE_DATEorTXN_DATE)Use
im_execute_selectto run a directSELECT TOP 5 * FROM dbo.ITEMto inspect actual data
Node version errors
SyntaxError: Cannot use import statementUpgrade Node.js to v20 LTS or later. The server uses ES modules which require Node 20+.
Project Structure
mcp-mssql/
├── src/
│ ├── index.ts MCP server entry point
│ ├── config.ts DB config + table name resolution
│ ├── database.ts Connection pool singleton
│ ├── guard.ts SQL safety: SELECT-only + input sanitisation
│ └── tools/
│ ├── index.ts Tool registry + dispatcher
│ ├── connection.ts Connection & schema discovery tools
│ ├── recon.ts Reconciliation tools
│ ├── breaks.ts Break & exception tools
│ ├── items.ts Item & transaction tools
│ ├── jobs.ts Job monitoring tools
│ └── query.ts Ad-hoc SELECT tool
├── dist/ Compiled JavaScript (generated by npm run build)
├── .env.example Environment variable template
├── .env Your local config (never commit this)
├── package.json
├── tsconfig.json
└── README.mdBAU Use Cases & Example Prompts
Real-world scenarios and the prompts you can type directly into Cline or Roo Code chat.
Connecting to the Database
Before anything else, verify the connection is healthy:
Prompt:
Test the IntelliMatch database connection and show me the server version.Calls im_test_connection — confirms SQL Server is reachable and returns the database name and version.
Prompt:
Show me the current MCP configuration — what tables is it using and what is the row limit?Calls im_get_configuration — displays all table name mappings and settings without exposing the password.
Discover the Schema (First-time Setup)
If you are unsure whether the default table names match your IntelliMatch deployment:
Prompt:
List all tables in the dbo schema so I can see what IntelliMatch tables exist.Calls im_list_tables — shows every table in the dbo schema.
Prompt:
Describe the ITEM table so I can see its column names and data types.Calls im_describe_table with table_name: "ITEM" — shows all columns, types, and nullability.
Prompt:
Describe the EXCEPTION table and tell me which columns hold the break amount and age.Helps identify the right column names before customising your .env table overrides.
Morning BAU Checks
The most common start-of-day workflow:
Prompt:
Give me a full daily BAU summary for today including recon status and open breaks.Calls im_get_daily_summary — one-shot morning health check covering match rates and break overview.
Prompt:
Did all overnight batch jobs complete successfully? Show me today's job status.Calls im_get_job_status for today — highlights any FAILED or still-RUNNING jobs.
Prompt:
Check if all data loads completed for today. Flag any that failed or have errors.Calls im_get_load_status — shows records received vs loaded and highlights failures.
Prompt:
Show me any ERROR-level log entries from today's processing.Calls im_get_error_log with severity ERROR and today's date.
Prompt:
Are there any jobs still running or waiting right now?Calls im_get_pending_processes — shows live job status.
Reconciliation Status
Prompt:
What is today's match rate across all recon groups? Show matched vs unmatched counts.Calls im_get_recon_summary for today's date.
Prompt:
Show me the match statistics for the past week broken down by currency,
including the total break amount for each currency.Calls im_get_match_statistics with a 7-day date range.
Prompt:
List all active reconciliation groups and their types.Calls im_get_recon_groups with active_only: true.
Prompt:
What is the match rate for the NOSTRO recon group for today?Calls im_get_recon_summary filtered to the NOSTRO recon group.
Break & Exception Investigation
Prompt:
Show me all open breaks in USD for today sorted by largest amount first.Calls im_get_breaks with currency: "USD" and today's date.
Prompt:
Find all open breaks older than 5 days — I need to escalate the aged items.Calls im_get_aged_breaks with age_days: 5.
Prompt:
Show me the break aging report — how many breaks are in each age bucket
and what is the total break amount?Calls im_break_aging_report — gives a bucket summary (0-2, 3-5, 6-10, 11-30, 30+ days).
Prompt:
Get me the full details of exception EXC-2024-00123 including both sides of the break.Calls im_get_break_details with exception_id: "EXC-2024-00123".
Prompt:
I need to review all open GBP breaks for the entity "LONDON-DESK"
older than 3 days — can you pull those up?Calls im_get_aged_breaks with age_days: 3, currency: "GBP", entity: "LONDON-DESK".
Item & Transaction Investigation
Prompt:
Find the item with reference TXN-20240613-4521 and show me its full details
including whether it matched.Calls im_search_items with item_ref: "TXN-20240613-4521", then im_get_item_details for the result.
Prompt:
Show me all unmatched items for today in EUR — I want to investigate why they didn't match.Calls im_get_unmatched_items with currency: "EUR" and today's date.
Prompt:
Search for all EXCEPTION items from the PRIME-BROKER recon group for 2024-06-12.Calls im_search_items with match_status: "EXCEPTION", recon_group: "PRIME-BROKER", value_date: "2024-06-12".
Prompt:
Item ITEM-98765 is showing as unmatched. Get its full details including
any linked match or exception.Calls im_get_item_details with item_id: "ITEM-98765" — shows match result and linked exception if any.
Ad-hoc SQL Investigation
When the built-in tools don't cover your specific query, use im_execute_select:
Prompt:
Run this query for me:
SELECT VALUE_DATE, CURRENCY, COUNT(*) AS item_count, SUM(AMOUNT) AS total_amount
FROM dbo.ITEM
WHERE VALUE_DATE >= '2024-06-01'
GROUP BY VALUE_DATE, CURRENCY
ORDER BY VALUE_DATE DESC, total_amount DESCCalls im_execute_select — executes any SELECT safely with row capping.
Prompt:
Query the top 20 largest unmatched items by amount across all currencies for this month.Claude will write the SELECT and call im_execute_select on your behalf.
Prompt:
Show me items from the SWIFT source system that arrived today but have no match yet,
ordered by amount descending. Max 50 rows.Claude constructs and executes a targeted SELECT query.
Multi-step Investigation Workflow
Cline and Roo Code can chain multiple tool calls in a single conversation:
Prompt:
I need to investigate today's reconciliation health.
Please:
1. Check the connection is live
2. Show today's recon summary
3. List any failed jobs
4. Pull the top 10 aged breaks over 3 days
5. Give me your assessment of what needs attention todayThe AI calls im_test_connection → im_get_recon_summary → im_get_job_status (filtered FAILED) → im_get_aged_breaks and then summarises the findings.
Prompt:
A trader is querying an item with reference "BOND-EUR-20240613-0042".
Find it, show its match status, and if it has a break get the full break details.Multi-step: im_search_items → im_get_item_details → im_get_break_details (if needed).
Security Notes
Read-only by design:
guard.tsblocks all write keywords before any query executesNo raw string SQL: every user-supplied value goes through a parameterised
request.input()callRow cap: all tools enforce a
TOP Nlimit (default 500, max 2000) to prevent large data dumpsNo vulnerable packages:
npm auditreports 0 vulnerabilities at install timeCredentials in env only: the
dist/output contains no credentials; they are injected at runtime via environment variables
Available Tools
20 toolsim_break_aging_reportA
Summarise open breaks by age buckets (0-2, 3-5, 6-10, 11-30, 30+ days) grouped by currency and entity. Essential for daily ageing review.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | No | Filter by entity (optional) | |
| currency | No | Filter by currency (optional) | |
| recon_group | No | Filter by recon group name (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read-only summarization operation with no destructive behavior, but lacks details on filtering behavior, performance, or what happens if no data matches. Basic transparency is present 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first clearly states the tool's function with specific details, second highlights its essential use case. No unnecessary words; front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple summary report without an output schema, the description does not specify the return format (e.g., counts, amounts). For adequate completeness, it should hint at what the summary contains. The age buckets are well-stated, but more detail on returned data would improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter described as 'Filter by ... (optional).' The description adds context that results are grouped by currency and entity, providing slight extra meaning. Baseline is 3, and the description meets it without exceeding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool summarizes open breaks by specific age buckets (0-2, 3-5, 6-10, 11-30, 30+ days) grouped by currency and entity. It also mentions the use case (daily ageing review), distinguishing it from sibling tools that likely provide raw break data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Essential for daily ageing review,' implying when to use it, but does not explicitly state when not to use it or mention alternatives like im_get_aged_breaks for detailed data. The guidance is implied but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_describe_tableA
Show column names, data types, nullability, and default values for a given table. Helps understand IntelliMatch table structure before writing queries.
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes | Table name with or without schema prefix, e.g. ITEM or dbo.ITEM |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read-only operation showing schema details, but does not disclose potential side effects (none expected), permissions needs, or response format. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, no redundant words, clearly structured. Every sentence provides value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, no annotations, and no output schema, the description is sufficiently complete. It tells what the tool does and when to use it. Could mention that the output is a table-like result or that it is safe to call repeatedly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description for table_name including example usage. The tool description adds no additional meaning beyond the schema; it restates the purpose. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool shows column names, data types, nullability, and default values for a given table, and adds context about helping understand table structure before writing queries. This clearly distinguishes it from sibling tools like im_list_tables (lists tables) and im_execute_select (runs queries).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when understanding table structure before writing queries ('Helps understand IntelliMatch table structure before writing queries'), but does not explicitly state when to avoid the tool or mention alternative tools for similar tasks. No explicit guidance on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_execute_selectA
Execute an ad-hoc SELECT (or WITH…SELECT) query against the IntelliMatch database. Only read operations are permitted — INSERT, UPDATE, DELETE, DDL, EXEC, and SQL comments are blocked. Use this as an escape hatch when the dedicated BAU tools do not cover your specific query.
| Name | Required | Description | Default |
|---|---|---|---|
| sql_query | Yes | A SELECT or WITH…SELECT SQL statement. Comments (-- /* */) are not allowed. | |
| max_rows | No | Maximum rows to return (default 100, hard cap 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description fully carries the burden. It clearly discloses that only read operations are permitted and lists all blocked operations. This gives the agent a complete safety picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core action, and no redundant words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple nature (2 parameters, no output schema), the description is complete: it explains what it does, constraints, and when to use it. No missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the descriptions in the schema are already clear. The tool description repeats the same information (e.g., 'Comments are not allowed', max_rows cap) without adding new parameter-level detail. Thus it does not add value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool executes ad-hoc SELECT queries and positions it as an escape hatch when dedicated BAU tools are insufficient. This distinguishes it from sibling tools like im_get_breaks or im_search_items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states that only SELECT and WITH…SELECT queries are allowed, blocking INSERT, UPDATE, DELETE, DDL, EXEC, and comments. It also guides when to use it: as an escape hatch when BAU tools don't cover the query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_aged_breaksA
Find break/exception items older than a specified number of days. Critical for break ageing reviews and escalations.
| Name | Required | Description | Default |
|---|---|---|---|
| age_days | Yes | Minimum age in days (e.g. 5 returns breaks open for 5+ days) | |
| entity | No | Filter by entity/book (partial match) | |
| currency | No | Filter by currency code | |
| limit | No | Max rows (default 100, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool finds items, implying a read-only operation, but does not explicitly confirm idempotency, lack of side effects, or any authorization needs. The description is adequate but could be more transparent about its read-only nature and whether it returns summary or detailed data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the core purpose and adding a brief usage context. Every word is useful; there is no redundancy or unnecessary detail, making it highly efficient for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description adequately covers its purpose and context for aging reviews. However, it lacks detail on output format (e.g., whether it returns a list or counts) and default behavior (e.g., ordering). For a simple filter tool, this is reasonable but slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions, so the description adds little semantic value. It mentions 'older than a specified number of days' which duplicates the age_days parameter description. No examples or additional usage guidance for the filter parameters are provided, making the description redundant with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Find break/exception items older than a specified number of days' with a specific verb (Find) and resource (aged breaks/exception items). It distinguishes from siblings like im_get_breaks (all breaks) and im_break_aging_report (likely a report) by focusing on aged items and being a direct retrieval tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: 'Critical for break ageing reviews and escalations,' indicating when to use this tool. However, it does not mention when not to use it or provide explicit alternatives among the listed siblings, which include im_break_aging_report and im_get_breaks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_break_detailsA
Get full details of a specific break/exception by its exception ID. Shows both sides of the break, amounts, differences, and history.
| Name | Required | Description | Default |
|---|---|---|---|
| exception_id | Yes | The exception/break ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It discloses output content ('both sides, amounts, differences, and history') but lacks mention of permissions, rate limits, error cases, or whether it modifies state (implicitly 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. Every word adds value: identifies action, resource, key identifier, and output highlights.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by listing key output fields (amounts, differences, history). Input is sufficiently described. Could mention if it returns a single object or multiple, but overall complete for a detailed view tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description already states 'The exception/break ID'. The tool description adds no additional meaning or format details, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets full details of a specific break/exception by ID, distinguishing it from sibling tools like im_get_breaks (list) and im_get_aged_breaks (aging report). The verb 'Get' and resource 'break details' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you have an exception ID, but does not explicitly state when not to use or mention alternatives among the 19 sibling tools lacking differentiation criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_breaksA
Retrieve open break/exception items with optional filters. Key morning-check tool. Returns break reference, amounts, currency, age, and status.
| Name | Required | Description | Default |
|---|---|---|---|
| value_date | No | Filter by value date (YYYY-MM-DD). Omit for all dates. | |
| entity | No | Filter by entity/book name (partial match) | |
| currency | No | Filter by currency code e.g. USD, GBP, EUR | |
| status | No | Break status filter: OPEN, PENDING, RESOLVED, WAIVED (default: OPEN) | |
| recon_group | No | Filter by recon group name (partial match) | |
| limit | No | Max rows to return (default 100, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It lists returned fields (references, amounts, currency, age, status) but does not disclose safety (read-only), pagination limits (from schema), or rate limits. Adequate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second adds key context and output fields. No fluff, front-loaded with critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 6 optional parameters, no output schema. Description covers purpose, output fields, and usage context. Could benefit from defining what a 'break' is, but sufficient for agents with domain knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no new meaning beyond 'optional filters' and return fields; it doesn't elaborate on parameters or provide examples. Schema already covers each parameter well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve open break/exception items') and resource ('break items'). It adds context ('Key morning-check tool') but does not explicitly differentiate from siblings like im_get_aged_breaks or im_get_break_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies morning use ('Key morning-check tool') but lacks explicit guidance on when not to use this tool or mention of alternatives such as im_get_aged_breaks for aged breaks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_configurationA
Show current MCP server configuration (connection details, table mappings, row limits). Password is never shown.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that the password is never shown, which is good, but does not disclose other behavioral traits such as whether the configuration is cached, if any side effects occur, or if it requires special permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise with two sentences that convey the essential purpose and a key constraint (password hidden). It is front-loaded and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description adequately covers the tool's function. It could mention the nature of the output (e.g., 'returns a JSON object'), but is otherwise sufficient for a simple read-only configuration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% coverage trivially. With 0 parameters, the baseline is 4. The description does not need to add parameter meaning, and it does not provide any extra detail, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Show current MCP server configuration', specifying the resource (configuration) and the action (show). It distinguishes from sibling tools that focus on breaks, tables, and other specific tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving configuration, but does not provide explicit guidance on when to use this tool versus alternatives like im_test_connection or im_list_tables. No exclusions or conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_daily_summaryB
Generate a daily BAU reconciliation summary: items loaded, match rates, open breaks, and job status for a given date.
| Name | Required | Description | Default |
|---|---|---|---|
| report_date | No | The report date (YYYY-MM-DD). Defaults to today. | |
| recon_group | No | Limit report to a specific recon group (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states that the tool generates a summary. It does not disclose read-only nature, permissions, or behavior for missing data, leaving significant gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and includes key elements. It is extremely concise with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description names the four components of the summary, which is adequate for a simple reporting tool with two optional parameters and no output schema. However, it lacks any indication of the return format or structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The tool description adds context about the report purpose but does not enhance parameter semantics beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a daily BAU reconciliation summary with specific components (items loaded, match rates, open breaks, job status). However, it does not explicitly differentiate from sibling tools like im_get_recon_summary or im_get_match_statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for daily summaries via 'for a given date', but provides no guidance on when not to use it or alternatives among the many sibling reporting tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_error_logB
Retrieve recent errors and warnings from the IntelliMatch error log. Filter by severity, job, or date range.
| Name | Required | Description | Default |
|---|---|---|---|
| from_date | No | Start date (YYYY-MM-DD). Defaults to today. | |
| to_date | No | End date (YYYY-MM-DD). Defaults to from_date. | |
| severity | No | ERROR | WARNING | INFO (default: ERROR) | |
| job_name | No | Filter by job name (partial match) | |
| limit | No | Max rows (default 50, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a read-only operation (retrieving logs) but does not confirm side effects, permissions needed, or behavioral traits like pagination. It is adequate but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence that covers purpose and key filters. It is appropriately sized for the tool's complexity, though adding a second sentence on output could improve structure without reducing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should provide more detail about return format, pagination, or example usage. The current description is too brief for a tool with 5 parameters and moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds minimal extra context (e.g., 'partial match' for job_name) beyond what the schema already provides. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (retrieve) and the resource (errors and warnings from IntelliMatch error log), with filtering capabilities, distinguishing it from sibling tools that focus on breaks, tables, or other functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like im_get_break_details or im_get_item_details. The description lacks explicit context for when not to use it or mention of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_item_detailsA
Get full details of a specific IntelliMatch item including all columns, match result, and linked exception if any.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | The item ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the output (columns, match result, linked exception) but does not address side effects, authorization needs, rate limits, or error handling. With no annotations provided, the description carries the full burden, and this is acceptable for a simple read operation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 19 words, which is concise and front-loaded with the main action. It could be slightly expanded for clarity but is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter set (1 required) and no output schema, the description adequately specifies the return content. However, it lacks context on potential errors or behavior when the item does not exist, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the parameter item_id with 100% description, and the tool description adds that the tool returns full details for that item. However, it does not elaborate on the parameter's format or provide examples, so it adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'IntelliMatch item', and specifies the scope 'full details including all columns, match result, and linked exception'. It differentiates from sibling tools like im_get_break_details or im_get_breaks by targeting a specific item's comprehensive data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly suggests using this tool when you need complete details of a single item, but it does not provide explicit guidance on when not to use it or what alternative tools (e.g., im_get_breaks for break-focused queries) are better suited for other needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_job_statusA
Check the status of IntelliMatch batch jobs/processes. Useful for verifying overnight runs completed and identifying failures.
| Name | Required | Description | Default |
|---|---|---|---|
| run_date | No | Date to check (YYYY-MM-DD). Defaults to today. | |
| job_name | No | Filter by job name (partial match) | |
| status | No | Status filter: RUNNING | COMPLETED | FAILED | WAITING (omit for all) | |
| limit | No | Max rows (default 50, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description only implies read-only nature but does not explicitly state it, nor disclose other behaviors like authentication needs or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and resource, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a status check tool, but lacks mention of return format or behavior of the limit parameter; could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers all parameters with descriptions; description adds no extra semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool checks status of IntelliMatch batch jobs/processes, distinguishing it from other im_* tools like im_get_breaks or im_get_daily_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for verifying overnight runs and identifying failures, but no explicit when-to-use or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_load_statusA
Check data load / file ingestion status. Shows records received, loaded, and any errors. Key morning check for confirming source data arrived.
| Name | Required | Description | Default |
|---|---|---|---|
| load_date | No | Load date (YYYY-MM-DD). Defaults to today. | |
| source_system | No | Filter by source system name (partial match) | |
| status | No | Status filter: COMPLETED | FAILED | PARTIAL | PENDING (omit for all) | |
| limit | No | Max rows (default 50, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool shows records received, loaded, and errors, implying a read-only operation. It does not mention side effects, permissions, or rate limits, but for a status check, the behavior is adequately conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no fluff. It front-loads the purpose, then details output, then gives a use case. Every sentence adds value, making it efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 4 optional parameters, the description covers the main purpose and typical use case. However, it does not describe the return format or pagination behavior, which would be helpful for an agent using the output. It is mostly complete for a status check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning to the parameters beyond the schema definitions (e.g., load_date, source_system, status, limit). It provides a general overview of output but no param-specific elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'check' and the resource 'data load / file ingestion status'. It explains that it shows records received, loaded, and errors, and identifies it as a key morning check, which distinguishes it from siblings like im_get_job_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context ('key morning check for confirming source data arrived') but does not explicitly exclude alternative tools or give when-not-to-use guidance. The context implies a typical use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_match_statisticsB
Get detailed match rate statistics for a date range: total items, matched, unmatched, exceptions, break amounts by currency.
| Name | Required | Description | Default |
|---|---|---|---|
| from_date | No | Start date (YYYY-MM-DD). Defaults to today. | |
| to_date | No | End date (YYYY-MM-DD). Defaults to from_date. | |
| recon_group | No | Filter to a specific recon group (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must convey behavioral traits. It implies a read-only, non-destructive operation by stating 'Get... statistics', but does not explicitly confirm safety, discuss side effects, or mention any required permissions. For a simple reporting tool, this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is clear and to the point. It front-loads the essential information (what the tool does) and lists key output metrics. However, some structural separation (e.g., bullet points) could improve readability for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three optional parameters, full schema coverage, and no output schema, the description provides sufficient context for a simple tool. It explains the purpose and output fields. However, it does not specify the aggregation level or response format, which would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents each parameter. The description adds value by listing the types of statistics returned, but does not elaborate on how parameters affect the output or provide additional meaning beyond the schema definitions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves match rate statistics for a date range, listing specific metrics (total items, matched, unmatched, exceptions, break amounts by currency). It uses a specific verb 'Get' and resource 'match statistics'. However, it does not differentiate from sibling tools like im_get_break_details or im_get_unmatched_items, which serve related but distinct purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies usage for obtaining match rate statistics, but lacks context on prerequisites, limitations, or conditions where other tools (like im_get_break_details) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_pending_processesB
List all IntelliMatch processes/jobs that are currently running or waiting to run. Useful for monitoring live processing.
| Name | Required | Description | Default |
|---|---|---|---|
| job_name | No | Filter by job name (partial match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It confirms a read-only operation but does not mention pagination, response format, or any potential side effects. The description adds no behavioral traits beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, consisting of two short sentences that contain no redundant information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and one optional parameter, the description is adequate but not comprehensive. It omits details about return format, pagination, or error handling, which are relevant for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter description in the schema is clear. The description does not add any additional meaning or context for the parameter, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all pending processes/jobs with a specific verb and resource. It distinguishes from siblings by focusing on pending/running status, but does not explicitly contrast with similar tools like im_get_job_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a use case ('monitoring live processing') but lacks explicit guidance on when not to use it or alternatives. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_recon_groupsA
List all reconciliation groups/sets defined in IntelliMatch. Shows group name, type, and active status.
| Name | Required | Description | Default |
|---|---|---|---|
| active_only | No | If true, return only active recon groups (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation ('List'), which is adequate but doesn't explicitly state non-destructiveness or any other behavioral aspects beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no unnecessary words, efficiently conveying purpose and output fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately describes output fields and purpose; minor gap: doesn't mention that default is active-only, but schema compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter completely (100% coverage), so description doesn't need to add parameter details; baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists reconciliation groups/sets and specifies the fields returned (name, type, active status), distinguishing it from siblings like im_get_recon_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., im_get_recon_summary) or mention of the active_only filter's implicit default behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_recon_summaryA
Get a reconciliation summary for a specific value date. Shows matched, unmatched, and exception counts with match % per recon group.
| Name | Required | Description | Default |
|---|---|---|---|
| value_date | No | Value date to summarise (YYYY-MM-DD). Defaults to today. | |
| recon_group | No | Filter to a specific recon group name (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only discloses output structure, not behavioral traits like read-only nature, default behavior for missing data, or any side effects. With no annotations, the description should cover these gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. Front-loaded with purpose and output details. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately describes output (counts, match %) for a tool with 2 optional params and no output schema. Given tool simplicity, missing behavior for missing data is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). Description adds meaning: explains that value_date defaults to today and recon_group is an optional filter. Provides format specification (YYYY-MM-DD) beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Get', resource 'reconciliation summary', and scope 'for a specific value date' with output details (matched/unmatched/exception counts, match % per group). Distinguishes from siblings like im_get_daily_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when summary statistics for a date are needed, but lacks explicit guidance on when to use vs alternatives like im_get_daily_summary or im_get_match_statistics. No 'when not to use' or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_unmatched_itemsA
Retrieve unmatched items for a date with optional filters. Shows all items with MATCH_STATUS = UNMATCHED.
| Name | Required | Description | Default |
|---|---|---|---|
| value_date | No | Value date (YYYY-MM-DD). Defaults to today. | |
| entity | No | Filter by entity (partial match) | |
| currency | No | Filter by currency code | |
| recon_group | No | Filter by recon group name (partial match) | |
| limit | No | Max rows (default 100, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool retrieves data and shows all items with UNMATCHED status, but does not disclose any side effects, performance implications, or guarantee that it's 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second adds a key detail. No redundant words, front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not explain the return structure or fields in the items. It is adequate for a simple retrieval tool but lacks detail on what information is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The description adds minimal value by noting 'optional filters' but does not elaborate on each parameter beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the resource 'unmatched items', specifying the MATCH_STATUS = UNMATCHED condition. This distinguishes it from sibling tools like im_get_breaks or im_get_break_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving unmatched items by date and optional filters, providing clear context. However, it does not explicitly state when not to use this tool or mention alternatives like im_get_break_details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_list_tablesA
List all user tables in a given schema (default: dbo). Useful for discovering the IntelliMatch schema layout.
| Name | Required | Description | Default |
|---|---|---|---|
| schema_name | No | Database schema name to search (default: dbo) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It describes the tool as listing tables (implying a read-only operation) but does not explicitly state readonly behavior, potential side effects, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences with no wasted words. The first sentence conveys action and parameter, the second provides usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with one optional parameter and no output schema, the description fully covers the purpose, parameter, and use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value over the schema by specifying the default value 'dbo' for the 'schema_name' parameter. With 100% schema coverage, the description meaningfully supplements the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (list all user tables) and resource (in a given schema), distinguishing it from sibling tools like 'im_describe_table' and 'im_get_breaks' that perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes the tool is useful for discovering the IntelliMatch schema layout, providing clear contextual guidance. However, it lacks explicit instructions on when not to use it or mention of alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_search_itemsB
Search IntelliMatch items/transactions by reference, date, entity, currency, or match status. Useful for investigating specific transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| item_ref | No | Item reference or partial reference (uses LIKE search) | |
| value_date | No | Value date (YYYY-MM-DD) | |
| entity | No | Entity/book name (partial match) | |
| currency | No | Currency code e.g. USD | |
| match_status | No | MATCHED | UNMATCHED | EXCEPTION | PARTIAL | |
| source_system | No | Source system name (partial match) | |
| recon_group | No | Recon group name (partial match) | |
| limit | No | Max rows (default 50, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description should disclose behavioral traits such as read-only status, pagination behavior, or rate limits. It merely says 'Search,' implying a read operation, but does not clarify what happens with the limit parameter or the nature of the results. No side effects or constraints are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that states the action and resource first, then the purpose. No unnecessary words, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 optional parameters and no output schema, the description is too minimal. It does not explain the output format, ordering, or what 'items/transactions' entails. The brief note about 'investigating specific transactions' does not fill the gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are documented in the schema. The description lists some parameters (reference, date, entity, currency, match status) but does not add meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Search') and resource ('IntelliMatch items/transactions'), listing specific filter criteria. It distinguishes itself from more specific sibling tools like im_get_unmatched_items or im_get_break_details by being a general search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says 'Useful for investigating specific transactions,' which is vague and provides no guidance on when to use this tool vs alternatives like im_get_unmatched_items or im_get_break_details. There is no mention of when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_test_connectionA
Test the MS SQL connection to the IntelliMatch database. Returns server version and database name.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden of behavioral disclosure. It states the tool tests a connection and returns two specific pieces of information, implying a non-destructive read operation. While it doesn't explicitly state safety, the behavior is clear enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It front-loades the purpose and immediately specifies the return values. Every part contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema, straightforward purpose), the description provides all necessary context to understand and use the tool correctly. It covers what it does and what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the description adds no extra meaning beyond the schema, which is already complete. The baseline for zero parameters is 4, but the description perfectly handles this case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Test') and resource ('MS SQL connection to the IntelliMatch database'), and clearly states the output (server version and database name). This distinguishes it from sibling tools, which are all about data operations or reporting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the tool is for verifying connectivity, but does not explicitly state when to use it vs. alternatives, nor does it mention when not to use it. However, since no other sibling tool provides this function, the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
20 tool updates
v1.0.0- First observed
im_break_aging_report - First observed
im_describe_table - First observed
im_execute_select - First observed
im_get_aged_breaks - First observed
im_get_break_details - First observed
im_get_breaks - First observed
im_get_configuration - First observed
im_get_daily_summary - First observed
im_get_error_log - First observed
im_get_item_details - First observed
im_get_job_status - First observed
im_get_load_status - First observed
im_get_match_statistics - First observed
im_get_pending_processes - First observed
im_get_recon_groups - First observed
im_get_recon_summary - First observed
im_get_unmatched_items - First observed
im_list_tables - First observed
im_search_items - First observed
im_test_connection
TDQS
Each tool targets a distinct aspect of IntelliMatch reconciliation: breaks, items, jobs, loads, statistics, etc. Overlapping concepts like im_get_breaks and im_get_aged_breaks are clearly differentiated by parameters and purpose. No two tools could be easily confused.
All tools follow the consistent pattern `im_verb_noun` (e.g., im_get_breaks, im_list_tables). Verbs are mostly 'get' with occasional 'list', 'describe', 'search', 'test', 'execute', but the structure is uniform and predictable.
20 tools is well-scoped for a reconciliation monitoring server. It covers essential BAU checks for breaks, items, jobs, loads, matches, and configuration without being overwhelming or incomplete.
The set comprehensively covers read-only monitoring and querying of breaks, items, jobs, loads, and statistics. It includes an ad-hoc query escape hatch. Missing write/update tools, but those appear out of scope for this server's purpose.
Maintenance
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
Connects AI assistants to CloudQuell multi-cloud and AI cost, savings, anomaly, and budget data.
Ask questions in plain language, get answers from your business database. No SQL required.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Read-only finance and operations controls for AI agents with evidence and safe next actions.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to connect and query Microsoft SQL Server databases using natural language, executing read-only SQL queries for safe data inspection and analysis.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with SQL Server Data Warehouses using natural language for automatic schema discovery and report generation. It ensures security by restricting operations to read-only SELECT queries through both code validation and database permissions.-
- FlicenseNot gradedqualityFmaintenanceEnables AI assistants to connect to on-premises SQL Server databases using natural language for queries, schema management, and data operations.1-
- FlicenseCqualityDmaintenanceEnables AI assistants to analyze and query SQL Server databases, including schema discovery, health checks, and data retrieval.10-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/navin2031992/mcpmssql'
If you have feedback or need assistance with the MCP directory API, please join our Discord server