Skip to main content
Glama
EricGrill

MCP Predictive Market

by EricGrill
README.md
<p align="center">
  <h1 align="center">MCP Predictive Market</h1>
  <p align="center">
    <strong>Query and analyze prediction markets through Claude</strong>
  </p>
  <p align="center">
    <a href="https://github.com/EricGrill/mcp-predictive-market/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT License"></a>
    <img src="https://img.shields.io/badge/tools-8-green.svg" alt="8 Tools">
    <img src="https://img.shields.io/badge/platforms-5-purple.svg" alt="5 Platforms">
    <img src="https://img.shields.io/badge/python-%3E%3D3.11-orange.svg" alt="Python >= 3.11">
    <img src="https://img.shields.io/badge/tests-134%20passing-brightgreen.svg" alt="134 Tests">
  </p>
  <p align="center">
    <a href="#-quick-start">Quick Start</a> |
    <a href="#-available-tools">Tools</a> |
    <a href="#-supported-platforms">Platforms</a> |
    <a href="#%EF%B8%8F-configuration">Configuration</a> |
    <a href="https://github.com/EricGrill/agents-skills-plugins">Plugin Marketplace</a>
  </p>
</p>

---

## What is this?

An MCP (Model Context Protocol) server that aggregates prediction market data from **5 major platforms**. Search markets, compare odds, detect arbitrage opportunities, and track predictions through natural language.

**Works with Claude Desktop, Claude Code, Cursor, and any MCP-compatible client.**

**Part of the [Claude Code Plugin Marketplace](https://github.com/EricGrill/agents-skills-plugins).**

---

## Quick Start

```bash
# Clone and install
git clone https://github.com/EricGrill/mcp-predictive-market.git
cd mcp-predictive-market
uv sync

# Run the server
uv run python -m mcp_predictive_market.server
```

Add to your Claude config and start querying markets:

> "Find prediction markets about AI regulation"

---

## Why Use This?

| Feature | Description |
|---------|-------------|
| **Multi-Platform Search** | Query 5 prediction markets simultaneously |
| **Arbitrage Detection** | Find price discrepancies across platforms |
| **Market Tracking** | Build watchlists and monitor odds changes |
| **Platform Comparison** | Side-by-side odds for similar questions |
| **Unified Data Model** | Consistent market schema across all platforms |

---

## Available Tools

### Search & Discovery

| Tool | Description |
|------|-------------|
| `search_markets` | Search markets across all platforms by keyword |
| `list_categories` | Get available market categories |
| `browse_category` | Browse markets in a specific category |

### Market Data

| Tool | Description |
|------|-------------|
| `get_market_odds` | Get current odds for a specific market |
| `compare_platforms` | Side-by-side comparison of similar markets |

### Tracking

| Tool | Description |
|------|-------------|
| `track_market` | Add a market to your watchlist |
| `get_tracked_markets` | View all tracked markets with current prices |

### Analysis

| Tool | Description |
|------|-------------|
| `find_arbitrage` | Detect price discrepancies between platforms |

---

## Supported Platforms

| Platform | URL | Specialization |
|----------|-----|----------------|
| **Manifold Markets** | [manifold.markets](https://manifold.markets) | Play money, wide variety |
| **Polymarket** | [polymarket.com](https://polymarket.com) | Crypto, high liquidity |
| **Metaculus** | [metaculus.com](https://metaculus.com) | Science, long-term forecasts |
| **PredictIt** | [predictit.org](https://predictit.org) | US politics |
| **Kalshi** | [kalshi.com](https://kalshi.com) | CFTC-regulated, real money |

---

## Configuration

### Claude Desktop Setup

Add to your Claude Desktop config:

| Platform | Config Path |
|----------|-------------|
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
| Linux | `~/.config/Claude/claude_desktop_config.json` |

```json
{
  "mcpServers": {
    "prediction-market": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-predictive-market", "python", "-m", "mcp_predictive_market.server"]
    }
  }
}
```

### Claude Code Setup

Add to your project `.mcp.json` or `~/.config/claude-code/mcp.json`:

```json
{
  "mcpServers": {
    "prediction-market": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-predictive-market", "python", "-m", "mcp_predictive_market.server"]
    }
  }
}
```

---

## Examples

<details>
<summary><b>Search & Discovery</b></summary>

```
"Find prediction markets about AI"
"What categories of markets are available?"
"Show me crypto markets on Polymarket"
"Browse politics markets"
```

</details>

<details>
<summary><b>Market Analysis</b></summary>

```
"Get current odds for Manifold market abc123"
"Compare odds for 'Will Bitcoin hit $100k?' across all platforms"
"Show me the probability of a 2024 recession on different platforms"
```

</details>

<details>
<summary><b>Arbitrage Detection</b></summary>

```
"Find arbitrage opportunities with at least 10% spread"
"Are there any markets with significantly different odds across platforms?"
"Show me the biggest price discrepancies right now"
```

</details>

<details>
<summary><b>Market Tracking</b></summary>

```
"Track the Polymarket election market"
"Show all my tracked markets"
"What are the current prices on my watchlist?"
```

</details>

---

## Development

```bash
# Clone
git clone https://github.com/EricGrill/mcp-predictive-market.git
cd mcp-predictive-market

# Install with dev dependencies
uv sync --extra dev

# Run tests
uv run pytest -v

# Run specific test file
uv run pytest tests/test_integration.py -v
```

### Project Structure

```
src/mcp_predictive_market/
├── server.py           # MCP server entry point
├── tools.py            # Tool handler implementations
├── schema.py           # Unified market data models
├── errors.py           # Custom exceptions
├── rate_limiter.py     # Per-platform rate limiting
├── adapters/           # Platform-specific adapters
│   ├── base.py         # Adapter protocol
│   ├── manifold.py
│   ├── polymarket.py
│   ├── metaculus.py
│   ├── predictit.py
│   └── kalshi.py
├── analysis/           # Market analysis modules
│   ├── matching.py     # Cross-platform market matching
│   └── arbitrage.py    # Arbitrage detection
└── state/              # State management
    └── memvid_client.py
```

---

## Troubleshooting

<details>
<summary><b>No results from a platform</b></summary>

1. Platform API may be rate-limited - wait and retry
2. Check platform is online: visit the website directly
3. Some platforms filter certain market types

</details>

<details>
<summary><b>Arbitrage opportunities not found</b></summary>

1. Lower the `min_spread` parameter (default is 5%)
2. Try broader search terms
3. Fewer opportunities exist in efficient markets

</details>

<details>
<summary><b>Market not found</b></summary>

1. Verify the market ID format (varies by platform)
2. Ensure the market hasn't been resolved/closed
3. Check you're using the correct platform name

</details>

---

## Related Projects

- [Claude Code Plugin Marketplace](https://github.com/EricGrill/agents-skills-plugins) - Discover more MCP plugins
- [MCP Proxmox Admin](https://github.com/EricGrill/mcp-proxmox-admin) - Manage Proxmox VE through Claude
- [MCP Memvid State Service](https://github.com/EricGrill/mcp-memvid-state-service) - Persistent state for MCP servers

---

## Contributing

Contributions welcome!

1. Fork the repository
2. Create feature branch: `git checkout -b feature/my-feature`
3. Make changes and test: `uv run pytest`
4. Commit: `git commit -m 'Add my feature'`
5. Push: `git push origin feature/my-feature`
6. Open a Pull Request

---

## License

MIT

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. For example, 'browse_category' focuses on category-specific browsing, 'search_markets' handles cross-platform search, and 'get_market_odds' retrieves specific market data, ensuring agents can easily differentiate between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as 'browse_category', 'compare_platforms', and 'track_market'. This uniformity makes the tool set predictable and easy to navigate for agents.

Tool Count5/5

With 8 tools, the server is well-scoped for predictive market analysis, covering key operations like browsing, searching, comparing, and tracking. Each tool earns its place without feeling excessive or insufficient for the domain.

Completeness4/5

The tool set provides strong coverage for core workflows, including market discovery, comparison, and tracking. A minor gap exists in direct market interaction tools, such as placing bets or managing user accounts, but agents can still perform essential analysis tasks effectively.

Maintenance

ActivityInactive
ResponsivenessUnresponsive