Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
MCP server for Kalshi prediction markets: native RSA-PSS auth, rate limiting, demo/prod safety.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
KALSHI_API_KEY_ID, KALSHI_PRIVATE_KEY_PATH, KALSHI_PRIVATE_KEY_PEM, KALSHI_ENV, KALSHI_ALLOW_PROD, KALSHI_TRADING_ENABLED「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"kalshi": {
"command": "uvx",
"args": [
"kalshi-mcp-server"
],
"env": {
"KALSHI_API_KEY_ID": "your-value",
"KALSHI_PRIVATE_KEY_PATH": "your-value",
"KALSHI_PRIVATE_KEY_PEM": "your-value",
"KALSHI_ENV": "your-value",
"KALSHI_ALLOW_PROD": "your-value",
"KALSHI_TRADING_ENABLED": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add kalshi --env KALSHI_API_KEY_ID=your-value --env KALSHI_PRIVATE_KEY_PATH=your-value --env KALSHI_PRIVATE_KEY_PEM=your-value --env KALSHI_ENV=your-value --env KALSHI_ALLOW_PROD=your-value --env KALSHI_TRADING_ENABLED=your-value -- uvx kalshi-mcp-server動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"kalshi": {
"command": "uvx",
"args": [
"kalshi-mcp-server"
],
"env": {
"KALSHI_API_KEY_ID": "your-value",
"KALSHI_PRIVATE_KEY_PATH": "your-value",
"KALSHI_PRIVATE_KEY_PEM": "your-value",
"KALSHI_ENV": "your-value",
"KALSHI_ALLOW_PROD": "your-value",
"KALSHI_TRADING_ENABLED": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"kalshi": {
"type": "stdio",
"command": "uvx",
"args": [
"kalshi-mcp-server"
],
"env": {
"KALSHI_API_KEY_ID": "your-value",
"KALSHI_PRIVATE_KEY_PATH": "your-value",
"KALSHI_PRIVATE_KEY_PEM": "your-value",
"KALSHI_ENV": "your-value",
"KALSHI_ALLOW_PROD": "your-value",
"KALSHI_TRADING_ENABLED": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
KALSHI_PRIVATE_KEY_PATH envKALSHI_ENV envKALSHI_ALLOW_PROD envKALSHI_TRADING_ENABLED envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント cejor6 で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:KALSHI_API_KEY_ID, KALSHI_PRIVATE_KEY_PEM
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.8)がレジストリに届いたのは5 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv), Dockerも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Brontide agent arena
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
THE MECH ARENA BUILT FOR AI AGENTS. HUMANS WELCOME. Pilot mech duels over MCP, free, no sign-in.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
📦 [PyPI](https://pypi.org/project/kalshi-mcp-server/) · 🗂️ [MCP Registry](https://registry.modelcontextprotocol.io/?search=io.github.cejor6/kalshi-mcp-server) · 🐳 [Container image](https://github.com/cejor6/kalshi-mcp-server/pkgs/container/kalshi-mcp-server) · 🚀 [Deploy guide](DEPLOY.md)
A Model Context Protocol server for Kalshi prediction markets. Native RSA-PSS auth, async token-bucket rate limiting, two-step prepare/confirm order flow with safety caps, optional bundled OAuth proxy for remote-MCP deployments, 26 tools + 4 resources across REST and WebSocket. MIT, designed to be forked.
Works with any MCP client — locally via stdio (Claude Desktop, Claude Code, Cursor, Zed, Continue, Cline, Goose, etc.) or remotely as a self-hosted HTTP server (claude.ai custom connectors today, any OAuth-capable MCP client in the future).
⚠️ **This software lets an LLM place trades. Read DISCLAIMER.md
before deploying.** Trading prediction markets involves substantial
risk of loss. AI agents make mistakes — sometimes confidently. The
authors are not liable for any losses. Test in demo (
KALSHI_ENV=demo,
KALSHI_TRADING_ENABLED=0) until you understand the failure modes.
Status — alpha. Auth (REST + WS), rate limiting, safety controls,
26 tools across REST + live channels, and 4 resources are in place.
A long-lived multiplexed WebSocket session and
kalshi://markets/{ticker}/orderbook
live resource are planned for v0.2.
Read-only against Kalshi's demo environment — no real money, no trading flag. This is the safe way to try it.
pipx install kalshi-mcp-server # or: pip install kalshi-mcp-server
Point any MCP client at it (this is the Claude Desktop / Claude Code shape — see the full client matrix for others):
{
"mcpServers": { "kalshi": { "command": "kalshi-mcp", "args": ["--env-file", "/Users/you/.kalshi/.env"] } } }
Minimal ~/.kalshi/.env (get a demo key at demo.kalshi.co — it's shown once):
KALSHI_API_KEY_ID=<your-demo-key-id>
KALSHI_PRIVATE_KEY_PATH=/absolute/path/to/demo_private_key.pem KALSHI_ENV=demo
Restart the client and ask it to run a Kalshi tool. Enabling prod and trading is a deliberate opt-in — a few more flags (KALSHI_ALLOW_PROD=1, KALSHI_TRADING_ENABLED=1) — see Configure and the safety model.
Ask the agent for tradeable markets and kalshi_find_liquid_markets returns a volume-ranked, combo-excluded shortlist (trimmed, illustrative):
{
"scanned": 300, "markets": [ { "ticker": "KXNBAGAME-25JUL12BOSLAL-BOS", "title": "Will the Celtics beat the Lakers?", "yes_bid_dollars": 0.58, "yes_ask_dollars": 0.60, "volume_24h_fp": 41230, "open_interest_fp": 88400, "status": "active", "close_time": "2026-07-12T23:30:00Z" }, { "ticker": "KXHIGHNY-26JUL12-B90.5", "title": "Will NYC's high temp exceed 90.5°F today?", "yes_bid_dollars": 0.31, "yes_ask_dollars": 0.34, "volume_24h_fp": 12760, "open_interest_fp": 23110, "status": "active", "close_time": "2026-07-13T04:00:00Z" } ] }
Placing a trade is a deliberate two step — kalshi_prepare_order runs the local safety checks and hands back a confirmation_id; nothing reaches Kalshi until you call kalshi_confirm_order with that token. An LLM can't place an order in a single call.
Most existing Kalshi MCPs are thin wrappers around a handful of REST endpoints. This one aims to be:
main without ever triggering a production deploy — only tagged releases (v*) do. Your fork's deployment stays decoupled from this repo's, and your fork's contributors can't affect what you run.Published as kalshi-mcp-server. pipx installs the kalshi-mcp entrypoint into its own isolated environment:
pipx install kalshi-mcp-server # or: pip install kalshi-mcp-server
git clone https://github.com/cejor6/kalshi-mcp-server.git
cd kalshi-mcp-server uv sync
Multi-arch (amd64 + arm64) images are published to GHCR on every tagged release, tagged :latest and :vX.Y.Z:
docker pull ghcr.io/cejor6/kalshi-mcp-server:latest
See DEPLOY.md for hosted deployment.
.env file. A good location for the MCP-client use case is ~/.kalshi/.env (outside any repo). For local dev, the repo's own .env (gitignored) works too.cp .env.example ~/.kalshi/.env
KALSHI_API_KEY_ID=<your-key-id>
KALSHI_PRIVATE_KEY_PATH=/absolute/path/to/your_kalshi_private_key.pem KALSHI_ENV=demo
For prod, also set:
KALSHI_ENV=prod
KALSHI_ALLOW_PROD=1 KALSHI_TRADING_ENABLED=1 # only if you want writes
On startup, the server resolves config in this order (highest wins):
env: block, or exported in your shell.--env-file PATH if you pass that flag, otherwise from ./.env in the current working directory if it exists. Variables already in the environment from step 1 are not overridden.So you can put secrets either inline in the MCP config (env:) or in a file the config points at (--env-file). You don't need to do both.
Every MCP stdio client uses the same shape: a command to launch the server, optional args, optional env. The differences are just the file/UI where you put the config.
Three install patterns work — pick whichever fits your environment.
pipx install (cleanest, recommended)Installs kalshi-mcp to a globally-available, isolated environment. pipx is the modern Python tool for this:
pipx install kalshi-mcp-server
MCP client config then collapses to:
{
"mcpServers": { "kalshi": { "command": "kalshi-mcp", "args": ["--env-file", "/Users/you/.kalshi/.env"] } } }
Update with pipx upgrade kalshi-mcp-server when you want the latest.
uv run against a local cloneBest if you've cloned the repo and have uv installed. Point the MCP client at uv with --directory:
{
"mcpServers": { "kalshi": { "command": "uv", "args": [ "run", "--directory", "/absolute/path/to/kalshi-mcp-server", "kalshi-mcp", "--env-file", "/Users/you/.kalshi/.env" ] } } }
uv run activates the project's venv automatically. Update with git pull + restart the MCP client. Useful for development / hacking on the server itself.
Best for users without Python installed, or who prefer container isolation:
{
"mcpServers": { "kalshi": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "/Users/you/.kalshi/demo.pem:/secrets/demo.pem:ro", "-e", "KALSHI_API_KEY_ID= ", "-e", "KALSHI_PRIVATE_KEY_PATH=/secrets/demo.pem", "-e", "KALSHI_ENV=demo", "ghcr.io/cejor6/kalshi-mcp-server:latest" ] } } }
The -v mount bind-mounts your PEM file read-only into the container; KALSHI_PRIVATE_KEY_PATH points at that path. Secrets live in the JSON config — fine for a single-user machine.
| Client | Config location |
|---|---|
| Claude Desktop | claude_desktop_config.json (Settings → Developer) |
| Claude Code | project .mcp.json or ~/.claude/mcp.json |
| Cursor | Settings → MCP → Add new MCP Server (UI fills the same JSON) |
| Zed | ~/.config/zed/settings.json under context_servers |
| Continue | ~/.continue/config.json under experimental.modelContextProtocolServers |
| Cline | Cline settings → MCP Servers → Edit JSON |
| Goose | ~/.config/goose/config.yaml under extensions |
If you'd rather inline secrets in the MCP config (acceptable for local dev where the config file is on your own machine):
{
"mcpServers": { "kalshi": { "command": "kalshi-mcp", "env": { "KALSHI_API_KEY_ID": "your-key-id", "KALSHI_PRIVATE_KEY_PATH": "/path/to/your/private_key.pem", "KALSHI_ENV": "demo" } } } }
Why not just `.env` in the project dir? MCP clients spawn the
server as a subprocess from their own working directory (typically
your home dir on macOS/Linux, the client's install dir on Windows),
so a
.envsitting in this repo wouldn't get found. Hence
--env-fileto point at it explicitly. Running the server directly
from the project dir (no client) still works without flags — the
CLI auto-loads
./.envwhen launched there.
For clients that don't speak local stdio — currently the main one being claude.ai's custom connector form, which only supports OAuth-protected HTTP — host the server somewhere reachable and point the client at it. The OAuth proxy is bundled with the server; you just need to configure it.
The proxy lets any GitHub account sign in, so HTTP transport also requires an identity allowlist — MCP_ALLOWED_GITHUB_IDS (numeric ids, preferred: they survive renames) and/or MCP_ALLOWED_GITHUB_LOGINS — enforced on every MCP request (tool calls, resource reads such as kalshi://balance, and listings). HTTP refuses to start on a partial OAuth config, and unauthenticated HTTP (MCP_ALLOW_INSECURE_HTTP=1) is confined to a loopback bind with DNS-rebinding protection unless you also set MCP_ALLOW_INSECURE_PUBLIC_BIND=1.
See DEPLOY.md for an end-to-end walkthrough using Render + GitHub OAuth + Upstash
冒頭だけを表示しています。続きはリポジトリで読めます