Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Exclusive, crash-safe leases on a pool of test accounts for parallel agent QA runs.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
APM_ACCOUNTS_FILE, APM_DB_PATH, APM_DEFAULT_TTL_SECONDS, APM_LEASE_WAIT_MS必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"account-pool": {
"command": "npx",
"args": [
"-y",
"account-pool-mcp"
],
"env": {
"APM_ACCOUNTS_FILE": "your-value",
"APM_DB_PATH": "your-value",
"APM_DEFAULT_TTL_SECONDS": "your-value",
"APM_LEASE_WAIT_MS": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add account-pool --env APM_ACCOUNTS_FILE=your-value --env APM_DB_PATH=your-value --env APM_DEFAULT_TTL_SECONDS=your-value --env APM_LEASE_WAIT_MS=your-value -- npx -y account-pool-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"account-pool": {
"command": "npx",
"args": [
"-y",
"account-pool-mcp"
],
"env": {
"APM_ACCOUNTS_FILE": "your-value",
"APM_DB_PATH": "your-value",
"APM_DEFAULT_TTL_SECONDS": "your-value",
"APM_LEASE_WAIT_MS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"account-pool": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"account-pool-mcp"
],
"env": {
"APM_ACCOUNTS_FILE": "your-value",
"APM_DB_PATH": "your-value",
"APM_DEFAULT_TTL_SECONDS": "your-value",
"APM_LEASE_WAIT_MS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
APM_ACCOUNTS_FILE envAPM_DB_PATH envAPM_DEFAULT_TTL_SECONDS envAPM_LEASE_WAIT_MS envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント ankitsxchdeva で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.1)がレジストリに届いたのは4 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Python MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ 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.
Local-only Python MCP server for the Files.com API.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
An MCP server that hands out test accounts to agent sessions one at a time, so two sessions never end up logged into the same account.
When you run several agent sessions at once — say a few Claude sessions each driving their own Playwright browser — they all need to log in, and left alone they'll grab the same test account and step on each other. Two sessions on one account corrupt each other's state and your test results become meaningless. Picking a random account doesn't really help either: with 10 accounts and 5 sessions, a collision is already more likely than not.
The fix is to lease accounts. A session checks one out, uses it, and returns it. While it's checked out, no one else can be handed it.
The server keeps a pool of accounts in a small SQLite database and gives them out one at a time. Allocation happens inside a BEGIN IMMEDIATE transaction, so even if several sessions ask at the exact same moment, they can't be handed the same account. Each lease has a TTL, so if a session crashes without returning its account, it gets reclaimed automatically — there's nothing to clean up.
All of this happens in the background. The agent just asks for an account when it needs one; the broker decides which one it gets and guarantees no one else has it. There's no shared parent process — unrelated sessions coordinate purely through the database file.
lease_account(pool, holder?) — check out an account. Returns the account, its credentials, and a lease_token. Hold it until you're done.release_account(lease_token) — give it back. Idempotent.renew_lease(lease_token) — extend the lease if your work runs long (a heartbeat).pool_status(pool?) — what's leased vs. free. Never returns credential values.There's also a small account-pool CLI (lease / release / renew / status) over the same database, for scripts and humans.
Want to see it first? bash examples/demo.sh runs a 60-second, no-install walkthrough — two sessions lease different accounts, a third is correctly refused, and the pool recovers on release.
It's on npm, so there's nothing to clone or build. Register it with your MCP client (e.g. .mcp.json) — npx fetches and caches it on first launch:
{
"mcpServers": { "account-pool": { "command": "npx", "args": ["-y", "account-pool-mcp"], "env": { "APM_ACCOUNTS_FILE": "./accounts.json", "APM_DB_PATH": "./account-pool.db" } } } }
Then define your pools in accounts.json (an id and a credentials blob per account):
{ "pools": { "realtor": [
{ "id": "realtor_01", "credentials": { "username": "qa01@example.com", "password": { "env": "REALTOR_01_PW" } } } ] } }
Want the CLI too? Run it ad-hoc with npx account-pool status, or install it on your PATH:
npm install -g account-pool-mcp # adds `account-pool` (CLI) and `account-pool-mcp` (server)
Point every session's APM_DB_PATH at the same file — that shared file is how they coordinate.
| Env var | Default | What it does |
|---|---|---|
APM_ACCOUNTS_FILE | ./accounts.json | Pools + accounts to load on startup. |
APM_DB_PATH | ./account-pool.db | The SQLite file. Same path for every session. |
APM_DEFAULT_TTL_SECONDS | 1800 | How long a lease lasts before it's reclaimable. |
APM_LEASE_WAIT_MS | 0 | 0 = fail fast when the pool is empty; >0 = wait this long for one to free up. |
A credential value can be { "env": "VAR_NAME" } instead of a literal, so real secrets stay in the environment and out of the accounts file.
The server ships agent instructions in the MCP handshake — clients like Claude Code, Cursor, and Windsurf inject them into context, so the agent knows to call lease_account before logging in without being told each time. The tool descriptions reinforce it (lease is exclusive; you *must* release).
For the most reliable pickup, also add a line to your project's own rules file (CLAUDE.md, .cursor/rules/, .windsurfrules) so the agent's instructions and the server's instructions agree:
## Test accounts
This repo has account-pool-mcp configured. Before logging into any test account in a QA or Playwright run, call lease_account to check one out, and release_account when done. Never hard-code, guess, or reuse an account — one account per session at a time.
These are test accounts, not a secrets vault. Credential values are never logged or returned by pool_status — a redacting logger masks them, and all logs go to stderr so they can't corrupt the MCP stream. Keep accounts.json and *.db out of git (only the .example files are committed). The stdio server trusts whoever runs it locally, so don't point it at production credentials.
Single host for now: coordination is through one SQLite file, so all sessions have to share a filesystem. The storage layer is isolated behind one module, so a Postgres or Redis backend could swap in later for multi-host coordination without changing the tools.