Skip to main content
Glama
fernandezpablo85

IOL MCP Tool

README.md
# IOL MCP Tool

A Model Context Protocol (MCP) tool for interacting with Invertir Online (IOL) API through Claude Desktop.

## Prerequisites

- Claude Desktop App for Mac
- Python 3.8+
- IOL trading account
- Environment variables setup with your IOL credentials

## Installation

1. Clone this repository:

```bash
git clone https://github.com/fernandezpablo85/mcpiol.git
cd mcpiol
```

2. Install uv if you haven't already:

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

3. Install dependencies:

```bash
uv sync
```

4. Create a `.env` file in the project root with your IOL credentials:

```bash
IOL_USER=your_username
IOL_PASS=your_password
```

## Configure Claude Desktop

1. Open Claude Desktop configuration directory:

```bash
open ~/Library/Application\ Support/Claude
```

2. Create or edit `claude_desktop_config.json`:

```bash
touch ~/Library/Application\ Support/Claude/claude_desktop_config.json
```

3. Add the following configuration:

```json
{
  "mcpServers": {
    "iol": {
      "command": "/Users/YOUR_USERNAME/.local/bin/uv",
      "args": [
        "--directory",
        "/Users/YOUR_USERNAME/projects/playground/mcpiol",
        "run",
        "main.py"
      ]
    }
  }
}
```

**Important notes:**

- Replace `YOUR_USERNAME` with your actual username
- Both the `command` and `--directory` paths must be absolute paths
- You can find your uv installation path by running `which uv` in the terminal

## Running Tests

To run the test suite:

```bash
pytest tests/test_client.py -v
```

For coverage report:

```bash
pytest tests/test_client.py --cov=client -v
```

## Troubleshooting

1. If tools don't appear in Claude Desktop:

   - Verify your configuration file is correct
   - Restart Claude Desktop
   - Check Python path and dependencies

2. If authentication fails:
   - Verify your .env file exists and has correct credentials
   - Check IOL API status
   - Ensure your IOL account is active

## License

MIT

## Contributing

Feel free to open issues or submit pull requests.

TDQS

B3.4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: account status, historical data, operation details, operations list, past week performance, portfolio, profile data, and quotes. The descriptions clearly differentiate them, and an agent can easily select the right tool for each task without confusion.

Naming Consistency5/5

All tool names follow a consistent 'verb_noun' pattern using 'get_' as the verb prefix (e.g., get_account_status, get_historical_data). This uniformity makes the set predictable and easy to understand, with no deviations in naming style.

Tool Count5/5

With 8 tools, the count is well-scoped for a financial/trading server focused on IOL account and stock data. Each tool serves a specific function (e.g., retrieving account info, operations, portfolio, quotes), and there are no extraneous or missing tools for the domain.

Completeness3/5

The tool set covers read-only operations well (e.g., getting account status, portfolio, quotes, historical data), but there are notable gaps for a trading platform: no tools for executing trades, updating orders, or managing positions. This limits agents to monitoring and analysis without full lifecycle coverage.

Maintenance

ActivityInactive
ResponsivenessResponsive