https://github.com/bmorphism/manifold-mcp-server
MCP server for interacting with Manifold Markets prediction markets
https://github.com/bmorphism/manifold-mcp-server
Last synced: 3 months ago
JSON representation
MCP server for interacting with Manifold Markets prediction markets
- Host: GitHub
- URL: https://github.com/bmorphism/manifold-mcp-server
- Owner: bmorphism
- License: mit
- Created: 2025-01-09T10:28:08.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-01-11T10:36:58.000Z (9 months ago)
- Last Synced: 2025-07-05T07:59:27.944Z (3 months ago)
- Language: JavaScript
- Size: 34.2 KB
- Stars: 6
- Watchers: 1
- Forks: 8
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- mcp-index - Manifold Markets MCP Server - Interact with prediction markets through a structured MCP interface, enabling the creation, management, and trading of markets while utilizing collective intelligence features for enhanced decision-making. (Business Tools)
README
# Manifold Markets MCP Server
An MCP server for interacting with Manifold Markets prediction markets. This server provides comprehensive access to Manifold's features through a clean MCP interface, enabling sophisticated market interactions and collective intelligence mechanisms.
## Architecture
The server implements a complete mapping of Manifold Markets' API capabilities through a structured tool system:
### Core Components
- **Schema Layer**: Zod-based validation schemas for all operations
- **API Integration**: Direct mapping to Manifold's REST endpoints
- **Tool Handlers**: Request processing with proper error management
- **Type Safety**: Full TypeScript implementation### Tool Categories
#### Market Creation & Management
- `create_market`: Create markets (BINARY, MULTIPLE_CHOICE, PSEUDO_NUMERIC, POLL)
- `unresolve_market`: Revert resolved markets
- `close_market`: Close markets for trading
- `add_answer`: Add options to multiple choice markets#### Market Interaction
- `follow_market`: Track markets of interest
- `react`: Like/dislike markets and comments
- `add_bounty`: Add bounties for analysis
- `award_bounty`: Reward valuable contributions#### Trading Operations
- `place_bet`: Execute market trades
- `cancel_bet`: Cancel limit orders
- `sell_shares`: Liquidate positions#### Liquidity Management
- `add_liquidity`: Provide market liquidity
- `remove_liquidity`: Withdraw provided liquidity#### Information Retrieval
- `search_markets`: Find markets with filters
- `get_market`: Detailed market information
- `get_user`: User profile data
- `get_positions`: Portfolio tracking#### Social Features
- `send_mana`: Transfer mana between users## Verified Capabilities
The server has been tested through comprehensive interaction trajectories:
### Successfully Tested
1. Market Discovery & Following
- ✅ Market search with filters
- ✅ Market following
- ✅ Detailed market information retrieval2. Trading Operations
- ✅ Liquidity provision
- ✅ Bet placement with probability updates
- ✅ Position liquidation
- ✅ Share selling3. Permission Management
- ✅ Role-based access control
- ✅ Authentication handling
- ✅ Error messaging### Permission-Restricted Operations
These operations are implemented but require specific user roles:
- Market resolution/unresolving (market creator)
- Market closing (market creator)
- Bounty management (market creator)
- Liquidity removal (liquidity provider)## Prerequisites
- Node.js 18 or higher
- npm or yarn
- Manifold Markets API key
- Minimum M$1000 balance for market creation## Installation
### 1. Install the package
```bash
npm install manifold-mcp-server
```### 2. Get your API Key
1. Log in to [Manifold Markets](https://manifold.markets)
2. Go to your profile settings
3. Generate an API key
4. Ensure account has sufficient mana for intended operations### 3. Configure MCP Settings
#### For Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"manifold": {
"command": "node",
"args": ["/path/to/manifold-mcp-server/build/index.js"],
"env": {
"MANIFOLD_API_KEY": "your_api_key_here"
}
}
}
}
```#### For Cline (VSCode Extension)
Add to `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`:
```json
{
"mcpServers": {
"manifold": {
"command": "node",
"args": ["/path/to/manifold-mcp-server/build/index.js"],
"env": {
"MANIFOLD_API_KEY": "your_api_key_here"
}
}
}
}
```## Tool Documentation
### Market Creation & Management
#### create_market
Create a new prediction market:
```typescript
{
outcomeType: 'BINARY' | 'MULTIPLE_CHOICE' | 'PSEUDO_NUMERIC' | 'POLL' | 'BOUNTIED_QUESTION'
question: string
description?: string | {
type: 'doc'
content: any[]
}
closeTime?: number // Unix timestamp ms
visibility?: 'public' | 'unlisted'
initialProb?: number // Required for BINARY (1-99)
min?: number // Required for PSEUDO_NUMERIC
max?: number // Required for PSEUDO_NUMERIC
isLogScale?: boolean
initialValue?: number // Required for PSEUDO_NUMERIC
answers?: string[] // Required for MULTIPLE_CHOICE/POLL
addAnswersMode?: 'DISABLED' | 'ONLY_CREATOR' | 'ANYONE'
shouldAnswersSumToOne?: boolean
totalBounty?: number // Required for BOUNTIED_QUESTION
}
```#### unresolve_market
Unresolve a previously resolved market:
```typescript
{
contractId: string
answerId?: string // For multiple choice markets
}
```#### close_market
Close a market for trading:
```typescript
{
contractId: string
closeTime?: number // Optional close time
}
```### Market Interaction
#### follow_market
Follow or unfollow a market:
```typescript
{
contractId: string
follow: boolean
}
```#### react
React to markets or comments:
```typescript
{
contentId: string
contentType: 'comment' | 'contract'
remove?: boolean
reactionType: 'like' | 'dislike'
}
```### Trading Operations
#### place_bet
Place a bet on a market:
```typescript
{
marketId: string
amount: number
outcome: 'YES' | 'NO'
limitProb?: number // 0.01-0.99
}
```#### sell_shares
Sell shares in a market:
```typescript
{
marketId: string
outcome?: 'YES' | 'NO'
shares?: number // Defaults to all
}
```### Liquidity Management
#### add_liquidity
Add liquidity to market pool:
```typescript
{
marketId: string
amount: number
}
```#### remove_liquidity
Remove liquidity from market pool:
```typescript
{
contractId: string
amount: number
}
```## Error Handling
The server implements comprehensive error handling:
1. Input Validation
- Parameter type checking via Zod schemas
- Value range validation
- Required field verification2. API Communication
- Authentication errors
- Network failures
- Rate limiting
- Permission checks3. Business Logic
- Insufficient balance
- Invalid market states
- Unauthorized operations4. Error Response Format
```typescript
{
code: ErrorCode
message: string
details?: any
}
```## Development
```bash
# Clone the repository
git clone https://github.com/bmorphism/manifold-mcp-server.git
cd manifold-mcp-server# Install dependencies
npm install# Build
npm run build# Run tests
npm test
```## Contributing
Contributions welcome! Areas of interest:
- Advanced market analysis tools
- Portfolio optimization features
- Integration with other prediction platforms
- Documentation improvements## Security
- API keys handled via environment variables
- Input validation on all parameters
- Rate limiting protection
- Safe error messages
- Role-based access control## License
MIT