Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
A U.S. voter's ballot by address, with an exact quote and source behind every candidate position.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://plainballot.com/mcpターミナルでこれを実行します
claude mcp add --transport http plain-ballot https://plainballot.com/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"plain-ballot": {
"url": "https://plainballot.com/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"plain-ballot": {
"type": "http",
"url": "https://plainballot.com/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://plainballot.com/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。
list_issuesThe 18 issues Plain Ballot tracks. Each has two sides, each worded the way its own supporters would say it. Use the short side labels ("l" and "r") when giving priorities to score_fit.
get_ballotEvery researched race on the ballot for a U.S. street address, with each choice's position on the issues that office decides, the exact quote, and the source URL.
score_fitHow closely each choice on the voter's ballot fits the priorities the voter stated, from 0 to 100. Plain arithmetic, the same as plainballot.com: issues where a choice has no sourced position are left out, never guessed. Only use priorities the voter actually gave you.
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント n8peace で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
310ミリ秒で応答(HTTP 200)
サインイン不要
3件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.0)がレジストリに届いたのは3 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, MemberVault MCP by usefulapi
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ 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.
List courses; add users to courses, remove course access or delete users in MemberVault.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Every race on your ballot, matched to what you care about. Every position backed by a quote you can check.
plainballot.com · How it works · The open data · Contribute
Who's running, and where do they stand? Pick the issues you care about, set a dial for each, and enter your address. Plain Ballot goes through your ballot and shows who fits you, why, and where that came from. Party labels stay hidden until you ask. No ads, no account, and your address isn’t stored.
Covering every race in California, plus U.S. House and Senate races in all 50 states, for Nov 3, 2026.
Two projects, both free and open:
Chatbots get voting facts wrong. Plain Ballot is built so no single model's word ever reaches a voter.
The research is its own project: [Open Election Data](https://github.com/n8peace/open-election-data). It has a free, static API with no key needed:
curl -s https://n8peace.github.io/open-election-data/v1/divisions/ca/cd-10.json
Use it for anything, including commercial products, under the Open Database License: credit it, and share improvements to the data under the same terms.
Plain Ballot works without a browser. Point any AI agent that supports MCP (Claude, ChatGPT, Cursor and others) at:
https://plainballot.com/mcp
It has three read-only tools:
list_issues: the 18 issues and how each side is worded.get_ballot: every researched race for a street address, with each choice's position, the exact quote, and the source.score_fit: how closely each choice fits the priorities the voter gave, using the same arithmetic as the site. No model is involved.The agent is told the same rules the site follows: stay nonpartisan, quote and link sources, never fill in a missing position, and only score priorities the voter actually stated. Addresses aren't stored.
Prefer plain JSON? GET https://plainballot.com/api/ballot?address=... returns the same ballot, and the research itself is a free static API.
Good sources are already out there, and Plain Ballot learns from them:
What we couldn't find was a free, open dataset of where candidates stand, with a checkable quote behind every position, with every candidate on the same issues so they can be compared, and free for anyone to reuse. So we built one: Open Election Data. Every claim still comes from the candidate's own words: agents follow a summary back to the candidate's site, voting record or interview and quote that.
The research runs on your own Claude or ChatGPT plan, so anyone can add coverage without paying for API credits. It happens in Open Election Data, which has an open "research your state" issue for each state.
npm install
cp .env.example .env.local npm run dev # http://localhost:3000
Without keys, it runs on a fictional sample ballot and the dials still work. Researched races come from the open data's API (set ELECTION_DATA_DIR to a local checkout's data/positions to work offline). Keys turn on typed priorities (AI_GATEWAY_API_KEY), real ballot lookup (GOOGLE_CIVIC_API_KEY) and address suggestions (GOOGLE_PLACES_API_KEY).
npm test # matching, neutrality, sharing, abuse limits
npm run eval # does the AI put people on the right side of each dial? (calls the model) npm run check:issues # dial wording matches the research data
Next.js on Vercel. The Census geocoder finds a voter's districts. Researched races come from the Open Election Data API, matched to voters by district. BotID, rate limits and a spending cap protect the paid endpoints (docs/security.md). The full picture, with a diagram: docs/ARCHITECTURE.md. Coding with an AI agent? Point it at AGENTS.md.
The most useful help is research and checking research, and neither needs code. See CONTRIBUTING.md, or open a ready-to-run copy in your browser:
AGPL-3.0. Anyone can run their own copy, but a hosted copy has to publish its changes, so nobody can quietly run a biased version.