Skip to main content
Glama
vishalkumar-2006

trademind-unified-mcp

trademind-unified-mcp

TradeMind AI's 6 MCP servers merged into one standalone server / one repo:

Domain

Tools

Portfolio

get_portfolio_snapshot, get_allocation_breakdown, get_pnl_history

Market Data

get_market_snapshot, get_price_history, get_volatility_metrics

Risk Engine

calculate_var, calculate_sharpe, get_exposure_analysis

Trade Records

get_trade_history, get_execution_details, reconcile_trades

Compliance DB

check_restrictions, get_audit_trail, validate_compliance

Slack

send_notification, get_channel_history, create_thread

18 tools, 1 process, 1 port.

Why this exists

The original 6 repos (portfolio-mcp, market-data-mcp, risk-engine-mcp, trade-records-mcp, compliance-db-mcp, slack-mcp) each ran as their own server. This repo copies each module's tool classes in locally (no npm workspace/package dependency on the rest of the trademind monorepo), so it can be pushed as one standalone GitHub repo and imported as one NitroStack app.

No business logic was changed — this is a structural merge only. All responses are currently mock/simulated data unless the optional live-data env vars below are set (same behavior as the original repos).

Related MCP server: Sablier MCP Server

Run locally

npm install
cp .env.example .env
npm run dev

Server starts on http://localhost:3150 (configurable via UNIFIED_MCP_PORT). GET /health reports status and the 18 registered tools.

Deploy to NitroStack / NitroCloud

  1. Push this folder as its own GitHub repo.

  2. In NitroCloud → Apps → Create App, import this repo.

  3. Set env vars from .env.example in the app's settings (all are optional — tools fall back to simulated data if unset).

Environment variables

See .env.example. All are optional:

  • UNIFIED_MCP_PORT — defaults to 3150

  • CONTEXT_ENGINE_URL — if set, tool results are also written there (fire-and-forget)

  • POLYGON_API_KEY / TWELVEDATA_API_KEY — enables live market data in market-data tools

  • SLACK_BOT_TOKEN — enables live Slack posting in send_notification

Available Tools

18 tools
calculate_sharpeC

Calculate Sharpe ratio and risk-adjusted return metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes
workflow_idNo

TDQS

C2.5/5.0
Behavior1/5

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

No annotations exist, so the description bears full responsibility for disclosing behavior. It does not mention side effects, data sources, authentication needs, or return format, providing almost no behavioral transparency.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words. However, it is so brief that it sacrifices informativeness for brevity.

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

Completeness1/5

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

Given the complexity of calculating a Sharpe ratio and the absence of output schema and annotations, the description is woefully incomplete. It does not specify what data the calculation uses, what the output looks like, or any contextual prerequisites.

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

Parameters1/5

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

The description does not reference the input parameters (user_id, workflow_id) or add meaning beyond the schema. With 0% schema description coverage, the description fails to compensate.

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 uses the specific verb 'Calculate' and identifies the resource as 'Sharpe ratio and risk-adjusted return metrics', which clearly states what the tool does. It distinguishes itself from siblings like 'calculate_var' by naming the specific metric.

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?

No guidance is provided on when to use this tool versus alternatives like 'calculate_var' or 'get_volatility_metrics'. There is no mention of prerequisites 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.

calculate_varC

Calculate Value at Risk (VaR) for portfolio

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes
workflow_idNo
confidence_levelNo

TDQS

C2.6/5.0
Behavior2/5

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 does not disclose whether the tool is read-only, requires authentication, or has any side effects.

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

Conciseness3/5

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

The description is a single sentence, appropriately sized but lacking useful detail. It is front-loaded but not sufficiently informative.

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 the complexity of VaR calculation and no output schema, the description is very incomplete. It does not mention return values, time horizon, or portfolio identification.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the parameters. The parameter names are somewhat self-explanatory, but without documentation, the agent lacks guidance on valid values or meaning.

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

Purpose4/5

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

The description clearly states the tool calculates Value at Risk for a portfolio, using a specific verb and resource. However, it does not differentiate from sibling tools like calculate_sharpe.

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?

No guidance on when to use this tool vs alternatives. The description implies usage from the name but provides no context or exclusions.

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

check_restrictionsC

Check user trading restrictions for a given symbol

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
user_idYes
workflow_idNo

TDQS

C2.4/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 convey behavioral aspects. It only states the basic action without disclosing whether it is read-only, returns a boolean or list, or any error conditions. This is insufficient for safe agent behavior.

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

Conciseness3/5

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

The description is a single, concise sentence. However, it is too brief to be minimally adequate; it lacks details that could be added without losing conciseness.

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 the absence of output schema and annotations, and a large set of sibling tools, the description fails to provide enough context for the agent to understand what the tool does, what it returns, or how it differs from similar tools.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters (symbol, user_id, workflow_id) beyond their types and required status. The agent gains no insight into their meanings or usage.

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

Purpose4/5

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

The description clearly states the action (Check) and resource (user trading restrictions) and specifies it's for a given symbol. However, it does not explicitly distinguish from sibling 'validate_compliance' which may overlap in functionality.

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 provides no guidance on when to use this tool versus alternatives or any prerequisites. No contextual information is given for decision-making.

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

create_threadC

Start a new conversation thread in a Slack channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYes
messageYes
workflow_idNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations exist, so the description holds the full burden. It only states the action without disclosing behavioral traits like required authentication, rate limits, or side effects.

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

Conciseness3/5

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

The single sentence is concise but lacks important details. It is appropriately short but sacrifices completeness.

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

Completeness1/5

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

With no output schema, no annotations, and three undocumented parameters, the description provides insufficient context for an agent to use the tool correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any parameter. The agent gets no help understanding channel, message, or workflow_id.

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 verb 'Start', the resource 'new conversation thread', and the location 'in a Slack channel'. It distinguishes well from sibling tools like send_notification and get_channel_history.

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?

No guidance is provided on when to use this tool versus alternatives or on any prerequisites. The description lacks context for appropriate usage.

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

get_allocation_breakdownC

Get asset class and sector allocation breakdown for portfolio

ParametersJSON Schema
NameRequiredDescriptionDefault
as_ofNo
user_idYes
workflow_idNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It implies a read operation ('Get') but does not disclose any behavioral traits such as required permissions, rate limits, or what the response contains. Minimal transparency.

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

Conciseness3/5

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

The description is a single short sentence, which is concise. However, it is minimally informative; while it earns its place by stating purpose, it could be more structured to include key details.

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 the tool has 3 parameters, no output schema, and no annotations, the description is incomplete. It does not explain the return format, parameter details, or any prerequisites for using the tool.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the input schema lacks descriptions for all 3 parameters. The description does not mention any parameters (user_id, as_of, workflow_id), failing to add meaning beyond the schema.

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

Purpose4/5

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

The description states the verb 'Get' and the resource 'asset class and sector allocation breakdown for portfolio', which is clear and specific. However, among sibling tools like 'get_portfolio_snapshot', there is no differentiation, so it lacks sibling distinction.

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?

No guidance on when to use this tool vs alternatives such as 'get_portfolio_snapshot' or other analysis tools. The description does not provide any context for selection.

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

get_audit_trailC

Get compliance audit trail for a user

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
user_idYes
workflow_idNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature (implied by 'Get'), pagination behavior, rate limits, or response format. For a read tool, more transparency is needed.

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

Conciseness3/5

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

The description is extremely concise (6 words), which is structurally efficient but at the expense of completeness. It does not waste words but omits essential details.

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

Completeness1/5

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

With no output schema and 3 parameters, the description is highly incomplete. It does not specify return format, pagination, or what constitutes an audit trail entry, leaving the agent underinformed.

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

Parameters1/5

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

The input schema has three parameters (limit, user_id, workflow_id) with 0% schema description coverage. The description only implies user_id's role but does not explain limit (pagination?) or workflow_id (filter?). It fails to compensate for the lack of schema descriptions.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('compliance audit trail for a user'), which is specific enough to distinguish from sibling tools like get_trade_history. However, it could be more precise by specifying the scope (e.g., actions within workflows).

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?

No guidance is provided on when to use this tool versus alternatives like validate_compliance or check_restrictions. The description lacks context on prerequisites 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.

get_channel_historyC

Get recent messages from a Slack channel

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
channelYes
workflow_idNo

TDQS

C2.9/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 fully disclose behavioral traits. However, it only says 'Get recent messages' without specifying what 'recent' means (e.g., time range, limit), whether pagination is used, or any authentication requirements. This is insufficient for an agent to predict the tool's behavior.

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

Conciseness4/5

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

The description is a single, well-structured sentence that is front-loaded with the action. However, it is too brief and sacrifices necessary details for brevity.

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 the tool has 3 parameters and no output schema or annotations, the description is not complete enough. It lacks information about parameter usage, return values, and any constraints. The agent would struggle to use the tool correctly without additional context.

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

Parameters2/5

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

The input schema has 3 parameters with 0% description coverage, meaning no descriptions in the schema. The tool description does not explain any of the parameters (channel, limit, workflow_id), leaving the agent to infer meaning from names alone. This is insufficient, especially for the workflow_id parameter which is not self-explanatory.

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 verb 'Get' and the resource 'recent messages from a Slack channel'. The tool's purpose is distinct from the listed sibling tools, which are all finance-related (e.g., get_portfolio_snapshot, get_trade_history), so it is well-differentiated.

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 any guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or limitations. For a tool that retrieves messages, it would be helpful to mention that it only gets recent messages or that it requires a channel ID.

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

get_execution_detailsC

Get detailed execution breakdown for a specific trade ID

ParametersJSON Schema
NameRequiredDescriptionDefault
trade_idYes
workflow_idNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must convey behavior. It only states 'Get detailed execution breakdown' without mentioning read-only nature, potential latency, or any side effects. Lacks necessary transparency.

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

Conciseness4/5

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

Single sentence is concise and front-loaded. However, the brevity sacrifices necessary detail for clarity.

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 too minimal. It does not explain what the breakdown includes, how to interpret results, or any prerequisites.

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

Parameters1/5

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

Schema coverage is 0%, so description must explain parameters. It only mentions 'trade ID' but does not clarify trade_id or the optional workflow_id parameter. No added value over the schema.

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

Purpose4/5

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

The description clearly states it retrieves detailed execution breakdown for a trade ID. However, it does not distinguish from sibling tools like get_trade_history or get_allocation_breakdown, which may overlap in functionality.

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?

No guidance on when to use this tool versus alternatives. The description implies it's for a specific trade ID but does not specify conditions or exclusions.

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

get_exposure_analysisC

Analyze sector, country, and currency risk exposure

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes
workflow_idNo

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only says 'Analyze,' which hints at a read operation but does not confirm safety, performance, data freshness, or any side effects. Minimal disclosure.

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

Conciseness2/5

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

The description is a single short sentence, but it is underspecified. Essential details are missing, so the brevity is not effective—it sacrifices completeness for conciseness.

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

Completeness1/5

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

Given the tool has 2 parameters, no output schema, no annotations, and risk-related siblings, the description is far from complete. It does not explain what the analysis produces, how to interpret results, or how parameters affect behavior.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention or explain any parameters. The agent gets no help understanding user_id or workflow_id beyond their types and required status.

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

Purpose4/5

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

The description clearly states the tool analyzes sector, country, and currency risk exposure, which is a specific verb+resource. It differentiates from sibling tools like get_allocation_breakdown or get_pnl_history, but lacks details on output.

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?

No guidance is provided on when to use this tool versus alternatives such as calculate_var or get_volatility_metrics. The agent gets no context for appropriate selection.

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

get_market_snapshotC

Get real-time market snapshots for given financial symbols

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesList of stock or asset symbols
workflow_idNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are available, so the description bears the full burden. It states 'real-time' but does not disclose read-only nature, authentication requirements, rate limits, or what constitutes a snapshot. The description is minimal and lacks key behavioral traits.

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

Conciseness4/5

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

The description is a single concise sentence with no unnecessary words. However, it is nearly too concise; a slightly longer description could improve clarity without sacrificing conciseness. Still, it is well-structured and front-loaded.

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 insufficient. It does not explain the return format, data frequency, or intended use cases. For a tool with two parameters and moderate complexity, the description lacks completeness.

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

Parameters2/5

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

Schema coverage is 50% with only the 'symbols' parameter having a description. The description adds no extra meaning beyond the schema, failing to explain what symbols are acceptable or what 'workflow_id' represents. It does not compensate for the missing schema descriptions.

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 verb 'Get' and the resource 'real-time market snapshots' for given financial symbols. It distinguishes from siblings like get_portfolio_snapshot (portfolio-specific) and get_price_history (historical), making the purpose 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as get_portfolio_snapshot or get_price_history. The description does not mention any context where this tool is preferred or excluded, leaving the agent to infer usage from the name alone.

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

get_pnl_historyC

Get historical PnL performance metrics over time

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
user_idYes
workflow_idNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It implies a read-only operation but does not state idempotency, safety, or required permissions. The return format and potential side effects are absent.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks necessary structure. It is not front-loaded with essential details; each word is present but insufficient for the agent.

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

Completeness1/5

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

Given 3 parameters, no output schema, and no annotations, the description is severely incomplete. It omits information about returned metrics, time aggregation, data sources, and any prerequisites like authentication scopes.

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

Parameters1/5

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

Schema coverage is 0% and the description does not mention any parameters (user_id, days, workflow_id). The agent receives no semantic context beyond the schema's type constraints.

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

Purpose4/5

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

The description clearly states the tool retrieves 'historical PnL performance metrics over time', identifying the specific resource (PnL metrics) and action (Get). However, it does not distinguish this from sibling tools like 'get_portfolio_snapshot' or 'get_price_history', which also retrieve historical performance data.

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?

No guidance is provided on when to use this tool versus alternatives such as 'get_portfolio_snapshot' or 'get_trade_history'. There are no examples, prerequisites, or exclusions mentioned.

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

get_portfolio_snapshotC

Get real-time portfolio holdings, value, and position breakdown

ParametersJSON Schema
NameRequiredDescriptionDefault
as_ofNo
user_idYes
workflow_idNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Only mentions 'real-time', but does not disclose operational traits like required permissions, rate limits, or what happens on invalid input.

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

Conciseness4/5

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

Single sentence, front-loaded with key info. No wasted words, but could benefit from slight restructuring to list parameters.

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 3 parameters with 0% coverage, no output schema, and no annotations, the description is insufficient for correct invocation. Does not explain return structure or parameter formats.

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

Parameters1/5

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

Schema has 0% description coverage and the tool description adds no explanation for any of the 3 parameters (as_of, user_id, workflow_id). Agent must infer meaning from names alone.

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 verb 'Get', resource 'portfolio snapshot', and deliverables 'holdings, value, and position breakdown'. This distinguishes it from siblings like get_allocation_breakdown or get_pnl_history.

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?

No guidance on when to use this tool versus alternatives, no prerequisites or context provided. Agent lacks direction on choosing this over sibling tools.

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

get_price_historyB

Get historical price data for a given symbol over a specified timeframe

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days of history
symbolYesAsset symbol
workflow_idNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and the description lacks behavioral details like rate limits, data freshness, authentication needs, or return format. It only states the basic action, leaving the agent uninformed about critical traits.

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?

Single sentence, front-loaded with the core purpose, no redundant words or filler. Efficiently communicates the essential action.

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 3 parameters, no output schema, and no annotations, the description is too sparse. It does not explain return data structure (e.g., OHLC, volume, timestamps) or how the data is organized, leaving the agent uncertain.

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 67%, with workflow_id undocumented. The description reinforces symbol and timeframe (mapped to days) but adds minimal new meaning beyond the schema. Baseline 3 applies due to decent coverage.

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 action 'Get', the resource 'historical price data', and the key parameters 'symbol' and 'timeframe'. It distinguishes from siblings like get_portfolio_snapshot or get_market_snapshot by specifying price history.

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?

No guidance on when to use this tool versus alternatives such as get_market_snapshot or get_trade_history. No exclusions or prerequisites mentioned.

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

get_trade_historyC

Get trade execution history for a given user

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
user_idYes
workflow_idNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It does not disclose whether the tool is read-only, pagination behavior, rate limits, or authentication requirements. Only the basic retrieval action is implied.

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

Conciseness3/5

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

The description is a single sentence, which is concise but too brief. Important details are omitted, making it less effective despite brevity.

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?

No output schema and 3 parameters with low coverage. The tool returns execution history, but the description does not specify output format, ordering, or constraints. With many sibling tools, this incomplete specification hinders correct selection and invocation.

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

Parameters2/5

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

Schema coverage is 0%, so description must explain parameters. It only mentions 'for a given user' (user_id). The 'limit' parameter (default 100, exclusiveMinimum 0) and 'workflow_id' (optional string) are not described, leaving agents to guess their semantics.

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

Purpose4/5

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

The description clearly states the action ('get') and resource ('trade execution history') and specifies it is for a given user. It distinguishes from siblings like 'get_pnl_history' but could be more specific about scope (e.g., time range).

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?

No guidance on when to use this tool versus alternatives like 'get_execution_details' or 'reconcile_trades'. The description lacks any contextual cues for appropriate usage.

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

get_volatility_metricsC

Get historical and implied volatility metrics for specified symbols

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsYesList of stock or asset symbols
workflow_idNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'Get' implying read-only, but omits details such as authentication requirements, rate limits, time range of data, or whether multiple symbols are supported. The agent lacks critical context for safe invocation.

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

Conciseness4/5

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

The description is a single, well-structured sentence that efficiently conveys the core purpose. However, it could include additional context without sacrificing conciseness.

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 the absence of an output schema and annotations, the description is under-specified. It does not explain what volatility metrics are returned (e.g., IV, HV30), the data source, or time period. The tool feels incomplete for an agent to use confidently.

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

Parameters2/5

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

Schema coverage is only 50% due to an undocumented workflow_id parameter. The description adds no parameter-level meaning beyond the schema's minimal description of 'symbols'. The purpose of workflow_id remains unexplained, and no guidance on format or constraints is given.

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

Purpose4/5

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

The description clearly states the tool retrieves volatility metrics (historical and implied) for given symbols. It distinguishes from siblings like get_price_history and calculate_var by focusing specifically on volatility, but could be more specific about the exact metrics provided.

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?

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like get_market_snapshot or calculate_sharpe, nor does it specify preconditions or exclusions.

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

reconcile_tradesC

Run trade reconciliation report across executed vs cleared trades

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes
workflow_idNo

TDQS

C2.7/5.0
Behavior2/5

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

Without annotations, the description carries full burden, but it only states the tool 'runs a report'. It does not disclose whether the tool is read-only, requires special permissions, or has any side effects. The report nature implies read-only, but this is 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.

Conciseness3/5

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

The description is a single sentence, which is concise and front-loaded. However, it is overly minimal, missing valuable details that could improve usability.

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 zero schema descriptions, no output schema, and no annotations, the description lacks essential details like parameter explanations, output format, or behavioral constraints. An agent cannot reliably determine how to invoke or interpret results.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the two parameters (user_id and workflow_id). The agent receives no hints about the purpose or format of these parameters beyond the schema types.

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 it runs a trade reconciliation report comparing executed vs cleared trades. It uses a specific verb 'Run' and resource 'trade reconciliation report', which distinguishes it from sibling tools like get_execution_details or get_trade_history that focus on different aspects of trade data.

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?

No usage guidance is provided. The description does not specify when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. For example, it does not clarify if this should be used after trade execution or for specific reconciliation periods.

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

send_notificationC

Send Slack notification message to specified channel or user

ParametersJSON Schema
NameRequiredDescriptionDefault
channelNo
messageYes
user_idYes
workflow_idNo

TDQS

C2.6/5.0
Behavior2/5

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

The description indicates a write operation but lacks details on permissions, rate limits, error handling, or side effects. With no annotations, the agent is left without critical behavioral context.

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

Conciseness4/5

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

The description is a single, clear sentence that efficiently conveys the tool's purpose with no wasted words. It is front-loaded with the verb and resource.

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 annotations, no output schema, and 0% schema coverage, the description is incomplete. It omits essential context like required versus optional parameters, success/failure behavior, and potential errors, making it insufficient for correct agent usage.

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

Parameters1/5

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

The schema has 0% description coverage, and the description adds no additional meaning beyond the parameter names. It does not explain the format of 'message', the difference between 'user_id' and 'channel', or the role of 'workflow_id'.

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

Purpose4/5

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

The description clearly states the tool sends a Slack notification to a specified channel or user, providing a specific verb and resource. However, it does not differentiate itself from sibling tools like 'create_thread', which might also send messages in a different context.

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?

No guidance on when to use this tool versus alternatives, such as 'get_channel_history' for reading or 'create_thread' for threaded conversations. No exclusions or prerequisites are provided.

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

validate_complianceC

Validate trade order compliance prior to execution

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
user_idYes
quantityYes
workflow_idNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states the purpose without mentioning important traits such as whether the tool performs side-effect-free validation, requires special permissions, or has rate limits. The behavior beyond the basic action is opaque.

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

Conciseness3/5

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

The description is a single sentence with no excess words, but it is so short that it sacrifices informativeness for brevity. It is appropriately concise for a simple purpose but lacks structure or additional context.

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 the tool has 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return values, error scenarios, or the validation process. The agent cannot infer how to use the tool effectively.

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

Parameters2/5

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

The input schema has 0% description coverage, yet the description adds zero parameter-level meaning. It does not explain the purpose of optional parameters like workflow_id or the format constraints (e.g., uuid, exclusiveMinimum). The agent must rely solely on parameter names, which are insufficient.

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

Purpose4/5

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

The description uses the verb 'Validate' and provides a specific resource ('trade order compliance') with a clear temporal context ('prior to execution'). It distinguishes from sibling tools like get_portfolio_snapshot or get_allocation_breakdown which are analytical rather than pre-execution validation.

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 any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The phrase 'prior to execution' weakly implies context but lacks explicit direction.

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.

  1. 18 tool updatesv0.1.0
    • First observedcalculate_sharpe
    • First observedcalculate_var
    • First observedcheck_restrictions
    • First observedcreate_thread
    • First observedget_allocation_breakdown
    • First observedget_audit_trail
    • First observedget_channel_history
    • First observedget_execution_details
    • First observedget_exposure_analysis
    • First observedget_market_snapshot
    • First observedget_pnl_history
    • First observedget_portfolio_snapshot
    • First observedget_price_history
    • First observedget_trade_history
    • First observedget_volatility_metrics
    • First observedreconcile_trades
    • First observedsend_notification
    • First observedvalidate_compliance

TDQS

B3/5.0
Disambiguation5/5

Each tool targets a distinct function: portfolio, market data, trades, compliance, Slack, or risk. No two tools have overlapping purposes.

Naming Consistency4/5

Most tools follow a 'verb_noun' pattern, primarily 'get_' for data retrieval. A few use different verbs like 'reconcile_', 'check_', 'validate_', 'send_', 'create_', which is acceptable but slightly inconsistent.

Tool Count4/5

18 tools for a comprehensive trading/investment platform is reasonable. Covers portfolio, market, trades, compliance, Slack, and risk without being excessive.

Completeness3/5

The tool surface covers analysis, compliance, and notifications but lacks trade execution (e.g., place_order). This is a notable gap for a trading system.

Maintenance

ActivitySlowing
ResponsivenessNo issues

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

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    An MCP server implementation that integrates with Angle One APIs to provide standardized access to financial market data, trading operations, and portfolio management.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    This MCP server provides authentication via wallet sign-in (SIWE) and authorization with scoped access to read and trade portfolios, enabling secure portfolio management through natural language.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for CPZAI platform, enabling AI agents to manage trading strategies, run backtests, route orders across brokers, and access portfolios, risk analytics, and market data through natural language.
    1
    MIT

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/vishalkumar-2006/trademind-unified-mcp'

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