Skip to main content
Glama
newerton

Investidor10 MCP Server

by newerton
README.md
<div align="center">

# Investidor10 - MCP Server

This project is part of the Model Context Protocol (MCP) ecosystem and provides tools to interact with external APIs and manage specific domain models. It is designed to demonstrate how to build an MCP server with external API integration and data validation.

</div>

<table style="border-collapse: collapse; width: 100%; table-layout: fixed;">
<tr>
<td style="width: 40%; padding: 15px; vertical-align: middle; border: none;">An integration that enables MCP tools to query stock market data, such as stock prices, and indicators, using the Investidor10 API.</td>
<td style="width: 60%; padding: 0; vertical-align: middle; border: none; min-width: 300px; text-align: center;"><a href="https://glama.ai/mcp/servers/@newerton/mcp-investidor10">
  <img style="max-width: 100%; height: auto; min-width: 300px;" src="https://glama.ai/mcp/servers/@newerton/mcp-investidor10/badge" alt="Investidor10 - MCP Server" />
</a></td>
</tr>
</table>

## Table of Contents

- [Features](#features)
- [Architecture](#architecture)
- [Installation](#installation)
- [MCP Server Configuration in VSCode](#mcp-server-configuration-in-vscode)
- [MCP Server Output in VSCode](#mcp-server-output-in-vscode)
- [Contribution](#contribution)
- [License](#license)

## Features

- **get-acoes**: Fetch basic stock information.
- Input validation using [Zod](https://github.com/colinhacks/zod).
- Integration with the Investidor10 API using `fetch` (infrastructure layer).

## Architecture

The project follows a layered architecture inspired by **Domain-Driven Design** (DDD) patterns:

- **Domain** (`src/domain`):
  Defines interfaces and types that represent data structures (e.g., `Investidor10`).

- **Infrastructure** (`src/infrastructure`):
  Implements external services, such as `Investidor10ApiService`, responsible for making HTTP calls to the Investidor10 API.

- **Application** (`src/application`):
  Contains business logic in `Investidor10Service`, which processes and formats data from the infrastructure.

- **Interface** (`src/interface`):
  Includes controllers (`Investidor10ToolsController`) that register tools in the MCP server, define validation schemas, and return results.

- **Entry Point** (`src/main.ts`):
  Initializes the `McpServer`, configures the transport (`StdioServerTransport`), instantiates services and controllers, and starts listening on _stdio_.

The folder structure is as follows:
```
src/
├── domain/
│   └── models/           # Domain interfaces
├── infrastructure/
│   └── services/         # External API implementations (Investidor10)
├── 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
```

## Installation

```bash
git clone git@github.com:newerton/mcp-investidor10.git
cd mcp-investidor10
npm install
npm run build
```

## MCP Server Configuration in VSCode

1. Press `Ctrl+Shift+P` and select "MCP: List Servers"
2. Select "stocks" and then "Start Server"

## MCP Server Output in VSCode

1. Press `Ctrl+Shift+P` and select "MCP: List Servers"
2. Select "stocks" and then "Show Output"

## Contribution

Pull requests are welcome! Feel free to open issues and discuss improvements.

## License

This project is licensed under the MIT license - see the [LICENSE](https://github.com/imprvhub/mcp-claude-hackernews/blob/main/LICENSE) file for details.

TDQS

B3/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool has a distinct purpose focused on retrieving basic stock information.

Naming Consistency5/5

A single tool inherently has consistent naming, as there are no other tools to compare against. The tool name 'get-acoes' follows a clear verb-noun pattern.

Tool Count2/5

One tool is too few for a server named 'Investidor10 MCP Server', which suggests a broader financial or investment domain. This minimal set severely limits functionality and likely indicates significant gaps in coverage.

Completeness1/5

The server is severely incomplete for an investment domain. With only a tool to get basic stock information, it lacks essential operations like portfolio management, market analysis, transaction execution, or even updates/deletes for financial data.

Maintenance

ActivityActive
ResponsivenessNo issues