FIS IntelliMatch Server
БесплатноНе проверенConnects AI assistants to FIS IntelliMatch SQL Server database for read-only BAU operations, enabling natural language queries on reconciliation data.
Описание
Connects AI assistants to FIS IntelliMatch SQL Server database for read-only BAU operations, enabling natural language queries on reconciliation data.
README
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
- What It Does
- Prerequisites
- Installation
- Configuration
- Build & Run
- VS Code Integration — Cline Plugin
- VS Code Integration — Roo Code Plugin
- Claude Desktop Integration
- Available Tools (19)
- Table Name Customisation
- Troubleshooting
- BAU Use Cases & Example Prompts
- Security Notes
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 | nodejs.org |
| 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 higher
Installation
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 install
Expected output:
added 167 packages, and audited 168 packages
found 0 vulnerabilities
Configuration
1. Create your .env file
Copy the example file and fill in your credentials:
# Windows
copy .env.example .env
# PowerShell
Copy-Item .env.example .env
Open .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=500
Tip: 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 build
Output is written to the dist/ folder. Compiled once; run repeatedly without rebuilding unless source changes.
Test the server manually
npm start
The 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 dev
Uses 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 Extensions - Search 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.json
PowerShell 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 connection
VS 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+X - Search 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.json
PowerShell 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 BAU - System 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.
- Name:
- 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 |
|---|---|
im_test_connection |
Test DB connectivity; returns server name, DB name, SQL version |
im_get_configuration |
Show current config (table mappings, row limits — no password) |
im_list_tables |
List all tables in a schema (default: dbo) |
im_describe_table |
Show columns, types, and nullability of any table |
Reconciliation
| Tool | Description |
|---|---|
im_get_recon_groups |
List all recon groups with type and active status |
im_get_recon_summary |
Match/unmatched/exception counts with match % for a date |
im_get_match_statistics |
Match rates and break amounts by currency for a date range |
Breaks & Exceptions
| Tool | Description |
|---|---|
im_get_breaks |
Get open breaks filtered by date, entity, currency, status |
im_get_aged_breaks |
Breaks older than N days — for escalation reviews |
im_get_break_details |
Full details of a specific break by exception ID |
im_break_aging_report |
Break count by age bucket (0-2, 3-5, 6-10, 11-30, 30+ days) |
Items & Transactions
| Tool | Description |
|---|---|
im_search_items |
Search items by reference, date, entity, currency, or status |
im_get_item_details |
Full item details including match result and linked break |
im_get_unmatched_items |
All unmatched items for a date with optional filters |
im_get_daily_summary |
Complete BAU daily summary: recon status + open breaks overview |
Job Monitoring
| Tool | Description |
|---|---|
im_get_job_status |
Batch job status for a date — verify overnight runs completed |
im_get_load_status |
Data load/file ingestion status with record counts |
im_get_error_log |
Recent errors/warnings from the error log |
im_get_pending_processes |
Jobs currently running or waiting |
Ad-hoc Query
| Tool | Description |
|---|---|
im_execute_select |
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.BREAKS
Use 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 buildfirst - Use forward-slash paths in JSON on Windows:
C:/NewInitiatives/mcp/mcp-mssql/dist/index.jsor escape backslashes:C:\\NewInitiatives\\mcp\\mcp-mssql\\dist\\index.js - Reload VS Code after editing settings JSON
Connection failed / timeout
Error executing "im_test_connection": ConnectionError: Failed to connect
- Verify the SQL Server is reachable:
Test-NetConnection your-server -Port 1433 - Check firewall rules allow port 1433 from your machine
- Confirm
MSSQL_USERandMSSQL_PASSWORDare correct - If 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 trusted
Set in your env:
MSSQL_TRUST_CERT=true
Table 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 names
Then set the correct names via IM_TBL_* environment variables.
Query returns no rows but data exists
- Check
VALUE_DATEformat — must beYYYY-MM-DD - Verify 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 statement
Upgrade 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.md
BAU 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 DESC
Calls 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 today
The 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 executes - No raw string SQL: every user-supplied value goes through a parameterised
request.input()call - Row cap: all tools enforce a
TOP Nlimit (default 500, max 2000) to prevent large data dumps - No vulnerable packages:
npm auditreports 0 vulnerabilities at install time - Credentials in env only: the
dist/output contains no credentials; they are injected at runtime via environment variables
Установка FIS IntelliMatch Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/navin2031992/mcpmssqlFAQ
FIS IntelliMatch Server MCP бесплатный?
Да, FIS IntelliMatch Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для FIS IntelliMatch Server?
Нет, FIS IntelliMatch Server работает без API-ключей и переменных окружения.
FIS IntelliMatch Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить FIS IntelliMatch Server в Claude Desktop, Claude Code или Cursor?
Открой FIS IntelliMatch Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
wenb1n-dev/SmartDB_MCP
A universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
автор: wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
автор: madhurprashPostgres
Query your database in natural language
автор: AnthropicPostgreSQL
Read-only database access with schema inspection.
автор: modelcontextprotocolCompare FIS IntelliMatch Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории data
