Status Invest MCP Server
ステータス投資 - MCPサーバー
このプロジェクトは、モデルコンテキストプロトコル(MCP)エコシステムの一部であり、外部APIとの連携や特定のドメインモデルの管理のためのツールを提供します。外部APIとの連携とデータ検証を備えたMCPサーバーの構築方法を示すことを目的としています。
目次
Related MCP server: Mercado Livre MCP Server
特徴
get-acoes : 基本的な株価情報を取得します。
get-indicadores : 詳細な株価指標情報を取得します。
get-acoes-datas-pagamento : 株式支払日を取得します。
Zodを使用した入力検証。
fetch(インフラストラクチャ レイヤー) を使用した Status Invest API との統合。
建築
このプロジェクトは、ドメイン駆動設計(DDD) パターンにヒントを得た階層化アーキテクチャに従います。
ドメイン(
src/domain): データ構造を表すインターフェースと型を定義します (例:StatusInvest)。インフラストラクチャ(
src/infrastructure): Status Invest API への HTTP 呼び出しを行うStatusInvestApiServiceなどの外部サービスを実装します。アプリケーション(
src/application): インフラストラクチャからのデータを処理およびフォーマットするStatusInvestServiceのビジネス ロジックが含まれます。インターフェース(
src/interface): MCP サーバーにツールを登録し、検証スキーマを定義し、結果を返すコントローラー (StatusInvestToolsController) が含まれます。エントリ ポイント(
src/main.ts):McpServerを初期化し、トランスポート (StdioServerTransport) を構成し、サービスとコントローラーをインスタンス化し、 stdioでリッスンを開始します。
フォルダ構造は次のとおりです。
src/
├── domain/
│ └── models/ # Domain interfaces
├── infrastructure/
│ └── services/ # External API implementations (Status Invest)
├── application/
│ └── services/ # Business logic and data formatting
├── interface/
│ └── controllers/ # MCP tool registration and validation
└── main.ts # Server entry point
build/ # Compiled JavaScript code
.vscode/ # Contains the mcp.json file, MCP Server configインストール
git clone git@github.com:newerton/mcp-status-invest.git
cd mcp-status-invest
npm install
npm run buildVSCode での MCP サーバー構成
Ctrl+Shift+Pを押して「MCP: サーバーの一覧」を選択します。「stocks」を選択し、「Start Server」を選択します
VSCode での MCP サーバー出力
Ctrl+Shift+Pを押して「MCP: サーバーの一覧」を選択します。「stocks」を選択し、「Show Output」を選択します
貢献
プルリクエストは大歓迎です!お気軽に問題を報告し、改善点について話し合ってください。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
Available Tools
8 toolsanalise-carteiraB
Análise completa de carteira com rebalanceamento multifatorial
| Name | Required | Description | Default |
|---|---|---|---|
| stocks | Yes | Array of stock symbols (e.g., ["BBAS3", "ITUB3"]) | |
| strategy | No | Investment strategy (buy-and-hold, dividend-focused, etc.) | |
| orderCost | Yes | Cost per order in BRL | |
| totalAmount | Yes | Total amount available to invest in BRL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'complete analysis with multifactor rebalancing' but does not disclose whether the tool performs actual rebalancing (destructive) or only provides recommendations. Lacks details on auth, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the main purpose. It is concise but could benefit from additional context without being overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description is incomplete. It does not explain the output format, whether the tool performs the rebalancing or just analyzes, or any prerequisites. Critical behavioral context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema. Parameters are adequately documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a complete portfolio analysis with multifactor rebalancing, using specific verb 'analysis' and resource 'carteira'. It distinguishes from sibling tools which are data retrieval tools for specific asset types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The implied usage is for portfolio analysis and rebalancing, but there is no explicit guidance on when to use this tool versus alternatives. No when-not-to-use 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-acoesC
Buscar informações básicas de ações
| Name | Required | Description | Default |
|---|---|---|---|
| stocks | Yes | Array of stock symbols |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as data freshness, rate limits, authentication requirements, or what 'basic information' entails. The description lacks sufficient transparency for an agent to understand behavioral implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise phrase with no wasted words. It is efficient but lacks structured presentation (e.g., bullet points or front-loading of key info).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema and annotations, the description should provide more context about what the tool returns or how it behaves. 'Basic information' is vague, and the simple one-line description is insufficient for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the 'stocks' parameter, providing a description that it is an array of stock symbols. The tool description adds no additional semantics beyond the schema, so it meets the baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Buscar' and the resource 'informações básicas de ações', indicating it retrieves basic stock information. However, it does not differentiate from sibling tools that also retrieve stock-related data, such as get-acoes-datas-pagamento or get-indicadores.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, limitations, 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-acoes-datas-pagamentoC
Buscar datas de pagamento de ações
| Name | Required | Description | Default |
|---|---|---|---|
| stocks | No | Ação | |
| finalDate | Yes | Data final | |
| initialDate | Yes | Data inicial |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does not disclose whether the tool is read-only, has rate limits, or any side effects. The brevity leaves behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct phrase with no unnecessary words. It is front-loaded and efficient, though very brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters and no output schema, the description should provide more context about the return values or any constraints. It currently lacks completeness for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter (e.g., 'Ação', 'Data final', 'Data inicial'). The description adds no additional meaning beyond what the schema already provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Buscar' (search) and resource 'datas de pagamento de ações' (payment dates of stocks), indicating a specific purpose. However, it does not mention the required date range, which is a key part of the tool's functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus sibling tools like 'get-acoes' or 'get-fiis'. The description lacks context for when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-fiagrosA
Buscar indicadores fundamentalistas de FIAgros (Fundos de Investimento nas Cadeias Produtivas Agroindustriais)
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | Array of FIAgro tickers (e.g., ["VGIA11", "KNCA11"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits (e.g., authentication, rate limits, data freshness). It only states the function without additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the key action and resource, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a simple 1-parameter tool, though lacking output description. No output schema present, so agents may need more context on return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the tickers parameter. The description adds no extra meaning beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Buscar indicadores fundamentalistas') and the specific resource ('FIAgros'), distinguishing it from sibling tools like get-fiis or get-acoes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The purpose is implied by the name and description, but there is no mention of when not to use or 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-fii-infraB
Buscar indicadores fundamentalistas de FII-Infra (Fundos de Investimento em Infraestrutura)
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | Array of FII-Infra tickers (e.g., ["IFRA11", "KDIF11", "BDIF11"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'search fundamental indicators,' implying a read-only operation. It fails to disclose any behavioral traits such as side effects, permissions, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence. It is appropriately sized for a simple tool, though could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides minimal context (only purpose) and no output details. Given no output schema and no annotations, it should explain what kind of indicators are returned. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the param 'tickers' is already described with examples. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves fundamental indicators for FII-Infra (Infrastructure Investment Funds), matching the tool name and distinguishing it from siblings like get-fiis (general FIIs) and get-acoes (stocks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. No contextual clues are given about prerequisites or when to avoid using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-fiisB
Buscar indicadores fundamentalistas de FIIs (Fundos Imobiliários)
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | Array of FII tickers (e.g., ["MXRF11", "BTLG11"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description alone must convey behavioral traits. It only states the tool searches for indicators, but does not disclose whether it is read-only, what data is returned, or any side effects. It lacks information on authentication, rate limits, or other behaviors beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is front-loaded with the core action and resource. It is appropriately concise for a tool with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description does not explain what is returned (e.g., which indicators, format). Given the presence of many sibling tools, the description should provide more context about the output to avoid ambiguity. The current content is insufficient for an agent to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as the sole parameter 'tickers' has a description with an example. The tool description does not add extra meaning beyond the schema; it merely restates the purpose. Per guidelines, with high schema coverage the baseline is 3, and the description does not improve it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Buscar indicadores fundamentalistas de FIIs (Fundos Imobiliários)' meaning 'Search for fundamental indicators of FIIs (Real Estate Funds)'. It specifies the action (search) and the resource (FIIs), and implicitly distinguishes from sibling tools like 'get-acoes' (stocks) and 'get-fiagros' (other fund types) by focusing on real estate fund indicators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings, such as 'get-fundos-imobiliarios' or 'get-fii-infra'. There is no mention of prerequisites, alternative tools, or conditions for use. The agent receives no context to choose this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-fundos-imobiliariosA
Buscar indicadores de FIIs, FIAgros e FII-Infra automaticamente. A tool identifica o tipo de cada ticker e retorna os dados consolidados. Use esta tool para buscar múltiplos tickers sem se preocupar com a classificação.
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | Array of fund tickers - can be FII, FIAgro or FII-Infra (e.g., ["MXRF11", "VGIA11", "IFRA11", "BTLG11"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions automatic identification and consolidated return, but lacks details on error handling, invalid tickers, rate limits, or side effects. This leaves significant transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, with the purpose stated upfront. Every sentence adds value, and there is no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is adequate but lacks specifics on return format or what 'indicadores' are. For completeness, more detail on output would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description adds little beyond the schema description for the tickers parameter. Schema coverage is 100%, and the schema already explains the parameter well, so the description provides no additional meaningful semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: fetching indicators for FIIs, FIAgros, and FII-Infra automatically. It also distinguishes from siblings (get-fiis, get-fiagros, get-fii-infra) by emphasizing automatic classification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends use when handling multiple tickers without classification concerns, providing clear usage context. However, it does not explicitly mention when not to use it (e.g., when all tickers are of one type, specific tools might be better).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-indicadoresB
Buscar informações de indicadores de ações
| Name | Required | Description | Default |
|---|---|---|---|
| stocks | Yes | Array of stock symbols |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states the purpose, not behavioral traits like read-only nature, rate limits, or what 'indicadores' include. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise single sentence with no wasted words. However, could be expanded slightly to include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and no output schema, the description provides basic purpose but lacks details on return format, example inputs, or definition of 'indicadores'. Adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds no extra meaning beyond 'Array of stock symbols' from schema. No examples or format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool searches for stock indicator information, using a specific verb and resource. However, it does not differentiate from sibling tools like 'get-acoes' or 'get-fiis', which may also deal with stock data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use when needing stock indicator info. No explicit guidance on when to use this tool over alternatives like 'analise-carteira' or 'get-fundos-imobiliarios'. 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.1.8- Added
get-fiagros - Added
get-fii-infra - Added
get-fiis - Added
get-fundos-imobiliarios
2 tool updates
v1.0.0- Added
analise-carteira - Changed
get-acoes-datas-pagamento2 fields changed- removed
Input schema / properties / stockRemoved value: -{ - "description": "Ação", - "items": { - "pattern": "^[A-Z]{4}(3|4|11)$", - "type": "string" - }, - "type": "array" -} - added
Input schema / properties / stocksAdded value: +{ + "description": "Ação", + "items": { + "pattern": "^[A-Z]{4}(3|4|11)$", + "type": "string" + }, + "type": "array" +}
3 tool updates
- First observed
get-acoes - First observed
get-acoes-datas-pagamento - First observed
get-indicadores
TDQS
Scored across 8 tools
Most tools target distinct asset types or operations (stocks vs REITs vs portfolio analysis), but get-fundos-imobiliarios consolidates three specific tools (get-fiis, get-fii-infra, get-fiagros), creating potential confusion about which to use.
Tool names are mostly hyphenated lowercase with a 'get-' prefix, but 'analise-carteira' breaks the pattern and 'get-fundos-imobiliarios' uses a longer descriptive phrase, resulting in mixed consistency.
8 tools is well-scoped for a financial data server covering stocks, REITs, and portfolio analysis, avoiding both bloat and insufficiency.
Covers core read operations (basic info, indicators, payment dates, portfolio analysis) for the main asset classes. Minor gaps like lack of historical data or search, but adequate for its purpose.
Maintenance
Related MCP Connectors
brapi.dev MCP — Brazilian stock + crypto + ETF quotes.
Open-source MCP server for Zerodha Kite Connect. Portfolio, market data, backtesting, alerts.
Financial data MCP server for Claude, ChatGPT, Cursor and Codex. Real-time stock quotes, financial statements, options flow, SEC filings, insider trades, 13F holdings, macro data and market news from gloom.sh, the open-source Bloomberg Terminal alternative.
Market Data App MCP — wraps the Market Data App API (marketdata.app)
Related MCP Servers
- AlicenseBqualityBmaintenanceInvestidor10 MCP Server: A Model Context Protocol (MCP) server for interacting with the Status Invest API. Provides tools for fetching stock data and indicators, with a layered architecture and data validation using Zod13MIT
- AlicenseCqualityAmaintenanceMercado Livre MCP Server: A Model Context Protocol (MCP) server for interacting with the Mercado Livre. Provides tools for fetching product data, such as prices and availability, with a layered architecture and data validation using Zod112MIT
- AlicenseNot gradedqualityCmaintenanceA production-ready foundation for developing custom Model Context Protocol (MCP) servers in TypeScript. Provides a complete layered architecture pattern, working example implementation, and comprehensive developer infrastructure to connect AI assistants with external APIs and data sources.58 npm72ISC
- AlicenseBqualityBmaintenanceA Model Context Protocol (MCP) server for agentic retrieval of financial data from Yahoo Finance, enabling stock information, historical data, analyst data, and more.7188 PyPI3AGPL 3.0