Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for Blacksmith CI - query runs, analyze test failures, detect flaky tests.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
BLACKSMITH_ORG, BLACKSMITH_SESSION_COOKIEค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"blacksmith": {
"command": "npx",
"args": [
"-y",
"blacksmith-mcp"
],
"env": {
"BLACKSMITH_ORG": "ใส่ค่าของคุณ",
"BLACKSMITH_SESSION_COOKIE": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add blacksmith --env BLACKSMITH_ORG='ใส่ค่าของคุณ' --env BLACKSMITH_SESSION_COOKIE='ใส่ค่าของคุณ' -- npx -y blacksmith-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"blacksmith": {
"command": "npx",
"args": [
"-y",
"blacksmith-mcp"
],
"env": {
"BLACKSMITH_ORG": "ใส่ค่าของคุณ",
"BLACKSMITH_SESSION_COOKIE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"blacksmith": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"blacksmith-mcp"
],
"env": {
"BLACKSMITH_ORG": "ใส่ค่าของคุณ",
"BLACKSMITH_SESSION_COOKIE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub grahamnotgrant ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: BLACKSMITH_ORG, BLACKSMITH_SESSION_COOKIE
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 10 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, yontu
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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.
Türkçe yazı denetimi: TDK kuralları, yapay zekâ izleri, metin türüne göre üslup.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
An MCP server that connects Claude to your Blacksmith CI data. Query workflow runs, analyze test failures, detect flaky tests, and monitor usage—all through natural conversation.
Debugging CI failures usually means clicking through dashboards, copying run IDs, and piecing together information across multiple pages. With this MCP, you can just ask:
Claude handles the API calls and gives you actionable insights.
Zero-config if you're logged into Blacksmith in Chrome:
# Add to Claude Code
claude mcp add blacksmith -- npx blacksmith-mcp
export BLACKSMITH_ORG="your-org-name"
The MCP automatically extracts your session from Chrome cookies. No manual token copying needed.
claude mcp add blacksmith -- npx blacksmith-mcp
Add to your .mcp.json:
{
"mcpServers": { "blacksmith": { "type": "stdio", "command": "npx", "args": ["blacksmith-mcp"], "env": { "BLACKSMITH_ORG": "your-org-name" } } } }
npm install -g blacksmith-mcp
Automatic (recommended): Log into app.blacksmith.sh in Chrome. The MCP extracts your session cookie automatically.
Manual: Set BLACKSMITH_SESSION_COOKIE environment variable with your session cookie value.
| Variable | Required | Description |
|---|---|---|
BLACKSMITH_ORG | Yes | Your Blacksmith organization name |
BLACKSMITH_SESSION_COOKIE | No | Session cookie (auto-extracted from Chrome if not set) |
| Tool | Description |
|---|---|
list_runs | List workflow runs with filters (status, branch, workflow, actor, PR) |
get_run | Get run details including all jobs |
list_jobs | List jobs for a workflow run |
get_job | Get job details (steps, timing, runner info) |
get_job_logs | Get raw log output for a job |
| Tool | Description |
|---|---|
get_job_tests | Get all test results for a job |
get_failed_tests | Get failed tests with full error messages |
get_failures_by_pattern | Group failures by error pattern (e.g., "Cannot read properties") |
compare_test_runs | Compare failures between two runs (find regressions) |
get_flaky_tests | Detect tests that fail intermittently |
get_slow_tests | Find tests exceeding duration threshold |
get_test_history | Track a specific test's pass/fail history |
get_trends | Analyze trends: duration, failure rate, test count |
| Tool | Description |
|---|---|
get_current_usage | Current core usage (active vs max) |
get_invoice_amount | Current billing period amount |
get_usage_summary | Billable minutes vs free tier |
get_cache_stats | Cache size, entries by repository |
get_cache_entries | Detailed cache entries for a repo |
| Tool | Description |
|---|---|
list_orgs | List accessible organizations |
get_org_status | Org status (personal, onboarded, region) |
search_logs | Search logs across all jobs |
You: Why did the last CI run fail?
Claude: *Uses
list_runs(status="failure", limit=1)thenget_failed_tests*
The last run failed with 34 test failures. The main issues are:
- Connection timeout (12 tests) - Tests in
api/are timing out connecting to the test database
- Undefined property (8 tests) -
user.settings.themeis undefined in the new dark mode code
- Assertion failures (14 tests) - Snapshot mismatches in UI components
You: Which tests are flaky?
Claude: *Uses
get_flaky_tests(days=7, min_runs=5)*
Found 3 flaky tests:
| Test | Flake Rate | Pattern |
|------|------------|---------|
|
should handle concurrent requests| 40% (4/10 runs) | Fails on CI, passes locally |
|
renders loading state| 20% (2/10 runs) | Race condition with setTimeout |
|
validates auth token| 30% (3/10 runs) | Intermittent network timeout |
You: Did my PR introduce new test failures?
Claude: *Uses
compare_test_runswith PR run vs base branch*
Your PR introduced 2 new failures:
-
UserProfile.test.tsx: "Cannot read property 'avatar' of undefined"
-
api/users.test.ts: Expected 200, got 404
5 previously failing tests now pass (nice!).
# Install dependencies
pnpm install
pnpm build
pnpm dev
npx @modelcontextprotocol/inspector node dist/index.js
If you see SESSION_EXPIRED, your Blacksmith session has expired. Simply log back into app.blacksmith.sh in Chrome and retry.
The automatic cookie extraction requires:
If it fails, set BLACKSMITH_SESSION_COOKIE manually.
Run list_orgs to see available organizations, then set BLACKSMITH_ORG to your org name.
This MCP uses Blacksmith's internal web API, which is undocumented. The API was reverse-engineered from the Blacksmith web app and may change without notice.
MIT
Contributions welcome! Please open an issue first to discuss proposed changes.