Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Model and map U.S. election races: scenarios, swing, turnout and precinct-level roll-ups.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"racemodel": {
"command": "npx",
"args": [
"-y",
"@reneturcios/racemodel",
"mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add racemodel -- npx -y @reneturcios/racemodel mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"racemodel": {
"command": "npx",
"args": [
"-y",
"@reneturcios/racemodel",
"mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"racemodel": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reneturcios/racemodel",
"mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 CloudCorpRecords 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.0)은 그저께 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js, Docker도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, HotCodePush
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도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.
Manage over-the-air (OTA) updates for React Native, Expo, Capacitor and Cordova apps.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
racemodel is a thin local bridge to the ElectionsMCP hosted MCP server, a modelling service for U.S. election races. Upstream, a user can resolve places and candidates, build a scenario, set candidate shares and turnout assumptions, apply a swing, and then read the race back as tallies, flipped seats, maps, charts and precinct-level roll-ups — including separate handling for primary races.
The bridge holds no election data and computes no forecast of its own. It serves the upstream server's tool list locally — exactly as captured from the live endpoint — and forwards each tool call upstream, returning the result untouched. Scenario and simulation state lives upstream, so writes such as creating a scenario or setting shares are the service's own modelling operations, forwarded like every other call. billing_status is a read; there is no payment, donation or purchase tool in the surface.
Geography, candidates and contests:
resolve_geography — turn a place name or shorthand into a canonical geo id (query, required).resolve_candidate — find who holds or runs for a seat from a person's name (name, required).search_candidates — browse the candidate registry by filters without supplying a name.lookup_address — resolve an address (address, required) to its geography.list_contests — list contests for a geography (geo_id, required).election_calendar — the election calendar. No required arguments.Scenarios and simulations:
create_scenario — start a new scenario (name, required).list_scenarios, get_scenario (scenario_id), commit_version (scenario_id), and diff_versions (scenario_id, version_a, version_b) — manage and compare saved scenario versions.set_performance — set shares for a geography in a scenario (scenario_id, geo_id, shares).target_precincts — precinct targeting for a scenario (scenario_id, required).set_candidates — set the candidate list for a simulation (simulation_id, level, candidates).set_turnout — set turnout assumptions (simulation_id, required).set_race_scope — set a simulation's race scope (simulation_id, required).list_simulations and get_simulation (simulation_id, required) — enumerate and read simulations.share_simulation — share a simulation (simulation_id, required).Views, swings and roll-ups:
get_view, render_view and set_view — read, render or set a simulation's view (each takes simulation_id).render_chart — render a chart (type, required).add_map_comment (simulation_id, body) and list_map_comments (simulation_id) — annotate and read back a simulation's map.apply_uniform_swing — apply a uniform swing in percentage points (simulation_id, level, swing_pp).apply_swing_to_query — apply a swing scoped by a query (simulation_id, state, filter).get_tally — the tally at a level (simulation_id, level).list_flipped — seats that flipped at a level (simulation_id, level).compare_simulations — compare two simulations at a level (simulation_id_a, simulation_id_b, level).roll_up_race — roll a simulation up to the race level (simulation_id, required).Turnout, returns and reference data:
get_early_voting_turnout — early-voting turnout for a state (state, required).get_county_voter_turnout_and_registration, get_state_historical_turnout, get_live_early_vote_returns and get_precinct_election_returns — turnout, registration, historical and returns reads. No required arguments.get_county_officials and get_county_economic_and_wealth_profile — county reference profiles. No required arguments.billing_status and connection_status — account and connection reads. No required arguments.get_campaign_onboarding, help and get_catalog — onboarding, help and catalog reads. No required arguments.Primaries:
list_primary_calendar — primary calendar for a party (party, required).set_primary_shares — set primary shares (simulation_id, party).roll_up_primary — roll a primary up (simulation_id, party).primary_batch_edit — batch-edit a primary (simulation_id, edits).Meta:
call_tool — invoke another tool by name through the upstream (name, required).ELECTIONSMCP_MCP_URL (optional) — override the upstream endpoint. Defaults to https://www.electionsmcp.com/mcp. (The override hook is this rebuild's own labelled reconstruction.)ELECTIONSMCP_API_KEY (optional) — when set, its value is sent on every upstream request under the header name the registry record pins for this remote, x-electionsmcp-key. When it is unset, no auth header is sent. (This forwarding is a labelled reconstruction; the original capture was keyless.)On the first tool call the client opens a streamable HTTP session with the upstream: a JSON-RPC initialize request (protocolVersion 2025-03-26, clientInfo name racemodel), then a notifications/initialized notification, then the tools/call request carrying the caller's arguments unchanged. When the upstream answers initialize with an Mcp-Session-Id header, that value rides on every later request of the session, which is reused for the life of the process. Replies may arrive as plain JSON or as server-sent events; both are read.
Successful upstream results pass through verbatim, including any isError flag the upstream sets. Failures — a JSON-RPC error, a non-2xx status, an unreadable response, or a request that cannot be completed — come back as an isError result whose text starts with racemodel error: (this rendering is this rebuild's own labelled reconstruction).
Each tool is also a subcommand taking one JSON argument string (omit it for tools that take none):
npx @reneturcios/racemodel resolve_geography '{"query":"CA-03"}'
npx @reneturcios/racemodel create_scenario '{"name":"Baseline 2026"}' npx @reneturcios/racemodel get_catalog npx @reneturcios/racemodel --version
Exit codes: 0 on success, 1 on an isError result, 2 on a usage error.
npx -y @reneturcios/racemodel mcp
MCP client config:
{
"mcpServers": { "racemodel": { "command": "npx", "args": ["-y", "@reneturcios/racemodel", "mcp"] } } }
docker run -i ghcr.io/cloudcorprecords/racemodel
docker run --rm ghcr.io/cloudcorprecords/racemodel --version
The container's default command is mcp, so the first form is a stdio MCP server; any other arguments reach the CLI normally.
npm install
npm run build npm test npm run dev
The test suite runs entirely against a stubbed JSON-RPC upstream — no live network calls.
MIT — see LICENSE.