Skip to main content
Glama
MSrikar7

findata-mcp

by MSrikar7

findata-mcp

Financial Data Quality & AI Inference Evaluation MCP Server

A Model Context Protocol (MCP) server that exposes six production-grade tools for AI agents working with financial datasets — covering data quality auditing, bias detection, model inference evaluation, outlier scoring, A/B testing, and KPI reporting.

Built to mirror the core responsibilities of Citi's Data Services & AI platform.


Tools

Tool

Description

audit_data_quality

Audits completeness, consistency, and machine-readability of financial records. Returns a quality score and remediation actions.

detect_bias

Detects demographic/categorical bias by comparing approval rates or amounts across cohort groups. Returns disparity ratios and a bias risk label (LOW / MEDIUM / HIGH).

evaluate_model_inference

Computes precision, recall, F1, AUC, and a PASS/FAIL verdict against configurable enterprise thresholds.

score_outliers

Flags anomalous records using Z-score and IQR methods across numeric fields.

run_ab_comparison

Compares two model variants on the same dataset and recommends a winner based on F1.

generate_kpi_report

Generates a structured KPI report — latency (avg/p95), throughput (rps), error rate, and SLA adherence — formatted for senior stakeholder delivery.


Related MCP server: Financial Intelligence MCP Server

Installation

git clone https://github.com/srikarmanikonda/findata-mcp.git
cd findata-mcp
npm install

Run

node src/index.js

The server communicates over stdio using the MCP protocol — connect it to any MCP-compatible client (Claude Desktop, ADK agent, etc.).

Test

npm test

All 13 tests pass across all 6 tools.


Claude Desktop / MCP Client Config

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "findata-mcp": {
      "command": "node",
      "args": ["/path/to/findata-mcp/src/index.js"]
    }
  }
}

Example Usage (via MCP client)

Audit data quality:

{
  "tool": "audit_data_quality",
  "records": [
    { "id": "R001", "loan_amount": 15000, "region": "Northeast", "approved": 1 },
    { "id": "R002", "loan_amount": null,  "region": "Southeast", "approved": 0 }
  ],
  "required_fields": ["id", "loan_amount", "region", "approved"],
  "numeric_fields": ["loan_amount"]
}

Detect bias:

{
  "tool": "detect_bias",
  "records": [...],
  "group_field": "region",
  "outcome_field": "approved",
  "outcome_type": "binary"
}

Evaluate model inference:

{
  "tool": "evaluate_model_inference",
  "predictions": [
    { "id": "R001", "predicted": 0.91, "actual": 1 },
    { "id": "R002", "predicted": 0.22, "actual": 0 }
  ],
  "threshold": 0.5,
  "min_precision": 0.75,
  "min_recall": 0.70
}

Stack

  • Runtime: Node.js (ESM)

  • MCP SDK: @modelcontextprotocol/sdk

  • Validation: zod

  • Transport: stdio (MCP standard)


Author

Srikar Manikonda — srikarmanikonda9@gmail.com

Available Tools

6 tools
audit_data_qualityA

Audits a financial dataset for completeness, consistency, and machine-readability. Returns a quality score, field-level breakdown, and a list of remediation actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
recordsYesArray of financial records (objects) to audit
numeric_fieldsNoFields expected to be numeric — checked for type and range
required_fieldsYesFields that must be present and non-null in every record

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states what the tool does (audits and returns results) but does not explicitly state it is read-only or disclose any side effects, permissions, or limitations.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the action. No wasted words.

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

Completeness4/5

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

Given no output schema, description adequately explains return values (quality score, field-level breakdown, remediation actions). Covers main aspects but could mention non-destructive nature or performance constraints.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds no extra meaning about the parameters beyond what the schema already provides.

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

Purpose5/5

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

Description clearly states the verb 'Audits', resource 'financial dataset', and specific dimensions (completeness, consistency, machine-readability). It distinguishes from siblings like detect_bias or score_outliers by focusing on data quality auditing.

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

Usage Guidelines3/5

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

Description implies use for auditing data quality but provides no explicit guidance on when to use this tool versus alternatives, or when not to use it.

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

detect_biasB

Detects demographic or categorical bias in a financial dataset by comparing approval rates, average amounts, or outcome distributions across cohort groups. Returns disparity ratios and a bias risk label.

ParametersJSON Schema
NameRequiredDescriptionDefault
recordsYesArray of financial records
group_fieldYesField to group by for bias analysis (e.g. 'region', 'income_tier', 'credit_band')
outcome_typeYesWhether the outcome field is binary (0/1) or numeric
outcome_fieldYesBinary or numeric outcome field to compare across groups (e.g. 'approved', 'loan_amount')

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden. It implies a read-only detection tool but does not explicitly state whether data is modified, if authentication is required, or if there are any side effects. The description lacks behavioral details such as performance constraints or assumptions about the data.

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

Conciseness5/5

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

The description is two sentences: the first states purpose and method, the second states output. It is front-loaded, efficient, and contains no redundancy. Every word adds value.

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

Completeness2/5

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

Given no output schema and no annotations, the description is incomplete. It does not detail the format or structure of the returned disparity ratios and bias risk label, nor does it explain the required shape of the input records (e.g., expected fields). For an analytical tool, this leaves ambiguity for the agent.

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

Parameters3/5

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

The schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds context by mentioning comparison of approval rates, amounts, and distributions, which aligns with group_field, outcome_field, and outcome_type. However, it does not add significant meaning beyond the schema, and the relationship between parameters is only implied.

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

Purpose5/5

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

The description clearly states the tool detects demographic or categorical bias in financial datasets, specifying the method (comparing approval rates, average amounts, outcome distributions) and output (disparity ratios and bias risk label). It is a specific verb+resource combination that distinguishes it from sibling tools like audit_data_quality or evaluate_model_inference.

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. For example, it does not state that this tool is appropriate when exploring fairness or that it should not be used for non-categorical attributes. No explicit context is given for use cases.

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

evaluate_model_inferenceA

Evaluates the accuracy of AI model inferences against ground-truth labels. Computes precision, recall, F1, AUC approximation, and a pass/fail verdict against enterprise performance thresholds.

ParametersJSON Schema
NameRequiredDescriptionDefault
thresholdNoClassification threshold for converting probabilities to binary (default 0.5)
min_recallNoMinimum acceptable recall
predictionsYesArray of {id, predicted (0/1 or probability), actual (0/1)} records
min_precisionNoMinimum acceptable precision

TDQS

A3.5/5.0
Behavior3/5

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

Description discloses the metrics computed and the pass/fail verdict, but lacks details on side effects, configuration of thresholds, error handling, or data persistence. Since annotations are absent, more context would be beneficial for a score above 3.

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

Conciseness5/5

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

Two focused sentences with no redundancy; first sentence defines core purpose, second details outputs. Efficient and well-structured.

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

Completeness3/5

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

Description covers core purpose and main outputs but omits details on return format, configuration of thresholds, and handling edge cases. Given no output schema, the description could be more complete.

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

Parameters3/5

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

Schema covers all parameters with descriptions. The description's mention of 'enterprise performance thresholds' hints at the min_recall/min_precision parameters but doesn't add new semantic information. At 100% coverage, baseline 3 is appropriate.

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

Purpose5/5

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

Description explicitly states the tool's function (evaluates inference accuracy) and lists computed metrics (precision, recall, F1, AUC, pass/fail), clearly distinguishing it from sibling tools like audit_data_quality or detect_bias.

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

Usage Guidelines2/5

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

Description provides no guidance on when to use this tool over siblings. It only describes the tool's function without contextualizing against alternatives or specifying prerequisites.

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

generate_kpi_reportB

Generates a structured KPI performance report for a financial data pipeline or AI agent run. Computes latency, throughput, error rate, and SLA adherence — formatted for senior stakeholder delivery.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_logsYesArray of per-record execution logs
pipeline_nameYesName of the pipeline or agent being evaluated
sla_latency_msNoSLA target: max acceptable latency per record in ms (default 500ms)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It mentions computing metrics and formatting for delivery, but omits output format (e.g., JSON, PDF, dashboard), side effects (e.g., storage, persistence), or whether it is read-only. Critical gaps for an agent to anticipate consequences.

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

Conciseness5/5

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

Two succinct sentences: first states purpose and scope, second lists key metrics and audience. No extraneous information, all sentences earn their place.

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

Completeness2/5

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

Despite clear purpose, crucial gaps remain: no output format described, no behavioral side effects disclosed, and no usage guidance. For a tool with 3 parameters and no output schema, more completeness is needed to guide correct invocation.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. Description adds context that the tool computes latency, throughput, error rate, and SLA adherence, clarifying report content beyond schema fields. However, does not explain how parameters relate to computation (e.g., how sla_latency_ms is used). Baseline 3 appropriate.

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

Purpose5/5

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

Explicitly states it generates a structured KPI performance report for financial data pipelines or AI agent runs, lists specific metrics (latency, throughput, error rate, SLA adherence), and notes formatting for senior stakeholder delivery. Clearly distinguishes from sibling tools like audit_data_quality or detect_bias.

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

Usage Guidelines3/5

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

Implies usage when a KPI report is needed for a pipeline/agent run, but does not explicitly state when to use versus alternatives, nor provide when-not scenarios or prerequisites. Sibling context suggests differentiation but description itself lacks direct guidance.

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

run_ab_comparisonB

Compares two model variants (A and B) on the same dataset using precision, recall, F1, and AUC. Returns a winner recommendation and statistical delta.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_aYesPredictions from model A
model_bYesPredictions from model B
thresholdNoClassification threshold (default 0.5)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It mentions computing metrics and returning a recommendation, but it does not disclose whether the tool modifies state, requires specific permissions, or performs any side effects. It also does not explain how the inputs are matched (e.g., by ID) or what 'statistical delta' means.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the purpose and output. No unnecessary words; every sentence serves a purpose.

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

Completeness3/5

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

Given no output schema and no annotations, the description explains the output but lacks details on input matching (e.g., datasets must share IDs), the nature of the statistical test, and any constraints (e.g., same length of arrays). It is minimally adequate but leaves gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds the list of metrics and the fact that datasets should be the same, but does not provide additional semantic meaning beyond what the schema already offers. The mention of 'same dataset' is not reflected in the schema and could be clarified.

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

Purpose5/5

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

The description clearly states the tool compares two model variants (A and B) using precision, recall, F1, and AUC, and returns a winner recommendation and statistical delta. This is distinct from sibling tools like detect_bias or evaluate_model_inference.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or contrast with siblings like detect_bias or evaluate_model_inference.

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

score_outliersA

Scores each record in a financial dataset for outlier risk using Z-score and IQR methods across specified numeric fields. Returns per-record risk flags and a summary of flagged anomalies.

ParametersJSON Schema
NameRequiredDescriptionDefault
recordsYesArray of financial records
z_thresholdNoZ-score threshold above which a value is flagged (default 3.0)
numeric_fieldsYesNumeric fields to analyze for outliers

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It discloses the methods (Z-score, IQR) and outputs but does not mention side effects (read-only), auth needs, rate limits, or handling of missing data. 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.

Conciseness5/5

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

Two sentences, each adding value. First sentence states action and method, second lists outputs. No redundancy or fluff.

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

Completeness3/5

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

Given no output schema, the description mentions return types (risk flags, summary) but lacks specifics on structure, error handling, or performance considerations. Acceptable but not fully complete for a 3-param tool.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. The description adds context that numeric_fields are the fields to analyze but does not provide significant new meaning beyond the schema. Baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the tool scores records for outlier risk using Z-score and IQR methods on specified numeric fields, and returns per-record flags and a summary. This clearly distinguishes it from siblings like audit_data_quality or detect_bias.

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

Usage Guidelines3/5

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

The description implies usage for outlier detection in financial datasets but does not explicitly state when to use it vs. alternatives (e.g., detect_bias for fairness, audit_data_quality for general checks). No when-not-to-use guidance.

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

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct aspect of financial data analysis: data quality, bias detection, model evaluation, KPI reporting, A/B comparison, and outlier scoring. No two tools have overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., audit_data_quality, detect_bias), making naming predictable and easy to understand.

Tool Count5/5

With 6 tools, the server is well-scoped for its domain of financial data evaluation and reporting. Each tool serves a clear purpose without unnecessary redundancy.

Completeness4/5

The tool set covers core evaluation and analysis tasks comprehensively. Minor gaps exist (e.g., no data ingestion or visualization tools), but these are likely out of scope for the server's intended function.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MSrikar7/findata-mcp'

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