MCP Integration

Tools reference

Complete reference for the 12 tools exposed by the Catalyst MCP server, grouped by category.

Marketplace (3 tools)

list_proposals

(status?, min_capital?, max_capital?, sort_by?, limit?) → Proposal[]

Lists startups on the marketplace with optional filters. Returns a summary for each: name, founder address, capital target, token target price, status, and deadline.

typescript
await client.callTool({
  name: "list_proposals",
  arguments: {
    status: "funding",
    sort_by: "capital_target",
    limit: 10,
  },
});

get_proposal_details

(proposal_id) → ProposalDetails

Returns full details for a specific startup: project description, token distribution breakdown, associated pools, funding history, and current investor list.

typescript
await client.callTool({
  name: "get_proposal_details",
  arguments: { proposal_id: 1 },
});

evaluate_proposal

(proposal_id, investment_amount) → EvaluationReport

Computes investment metrics for a given amount: tokens the investor would receive, estimated value at target price, risk score, and comparison with similar startups.

typescript
await client.callTool({
  name: "evaluate_proposal",
  arguments: {
    proposal_id: 1,
    investment_amount: 5000,
  },
});

Investor (4 tools)

fund_proposal

(proposal_id, amount, token) → TransactionResult

Deposits capital into a startup's Pool 1. The investor receives a proportional token allocation from the 20% investor reserve. Only available during the Funding phase.

typescript
await client.callTool({
  name: "fund_proposal",
  arguments: {
    proposal_id: 1,
    amount: 10000,
    token: "USDC",
  },
});

get_my_positions

() → Position[]

Returns all active positions for the connected wallet: capital in Pool 1, tokens received, commitment status, and deadline for each startup.

typescript
await client.callTool({
  name: "get_my_positions",
  arguments: {},
});

withdraw_liquidity

(proposal_id, amount, confirm_early_exit?) → TransactionResult

Withdraws liquidity from a startup's Pool 1. If called before the commitment deadline, the investor forfeits their token allocation (requires confirm_early_exit: true). Blocked during Active phase.

typescript
await client.callTool({
  name: "withdraw_liquidity",
  arguments: {
    proposal_id: 1,
    amount: 5000,
    confirm_early_exit: true,
  },
});

file_claim

(proposal_id, claim_amount) → TransactionResult

Files a claim against the founder's collateral after a startup has failed to meet its token price target. Only available when the startup status is Failed.

typescript
await client.callTool({
  name: "file_claim",
  arguments: {
    proposal_id: 1,
    claim_amount: 2000,
  },
});

Startup (3 tools)

register_startup

(name, description, capital_target, collateral_amount, commitment_period_days, min_token_price, symbol) → StartupRegistration

Registers a new startup on the protocol. Automatically creates the ERC-20 token with the standard distribution (40/25/20/10/5) and initializes both pools (Pool 1 USDx/USDy and Pool 2 USDx/TOKEN).

typescript
await client.callTool({
  name: "register_startup",
  arguments: {
    name: "Autonomous DEX",
    description: "A self-optimizing decentralized exchange",
    capital_target: 100000,
    collateral_amount: 15000,
    commitment_period_days: 180,
    min_token_price: 0.01,
    symbol: "ADEX",
  },
});

get_my_startup_status

(startup_id) → StartupStatus

Returns the current state of a startup owned by the caller: capital raised, current token price in Pool 2, accumulated fees, tokens in treasury, time remaining, and deadline.

typescript
await client.callTool({
  name: "get_my_startup_status",
  arguments: { startup_id: 1 },
});

buyback_token

(startup_id, amount) → TransactionResult

Executes a manual token buyback using funds from the startup's operational treasury. Complements the automatic 30% buyback from Pool 1 fees. Useful for strategic interventions when the token price drops below a threshold.

typescript
await client.callTool({
  name: "buyback_token",
  arguments: {
    startup_id: 1,
    amount: 1000,
  },
});

Leaderboard (1 tool)

get_leaderboard

(period?, sort_by?, limit?) → LeaderboardEntry[]

Returns a ranked list of startups. Sort options: token_appreciation, pool2_volume, investor_count, days_since_launch. Useful for discovery and competitive analysis.

typescript
await client.callTool({
  name: "get_leaderboard",
  arguments: {
    sort_by: "token_appreciation",
    limit: 20,
  },
});

Status (1 tool)

get_protocol_stats

() → ProtocolStats

Returns global protocol statistics: total TVL in Pool 1 across all startups, total Pool 2 volume, number of startups launched, tokens in protocol treasury, total fees distributed, and average token appreciation.

typescript
await client.callTool({
  name: "get_protocol_stats",
  arguments: {},
});