Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for querying and retrieving Qiskit documentation, guides, and API references
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
QISKIT_DOCS_BASE, QISKIT_HTTP_TIMEOUTต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"qiskit-docs": {
"command": "uvx",
"args": [
"qiskit-docs-mcp-server"
],
"env": {
"QISKIT_DOCS_BASE": "ใส่ค่าของคุณ",
"QISKIT_HTTP_TIMEOUT": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add qiskit-docs --env QISKIT_DOCS_BASE='ใส่ค่าของคุณ' --env QISKIT_HTTP_TIMEOUT='ใส่ค่าของคุณ' -- uvx qiskit-docs-mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"qiskit-docs": {
"command": "uvx",
"args": [
"qiskit-docs-mcp-server"
],
"env": {
"QISKIT_DOCS_BASE": "ใส่ค่าของคุณ",
"QISKIT_HTTP_TIMEOUT": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"qiskit-docs": {
"type": "stdio",
"command": "uvx",
"args": [
"qiskit-docs-mcp-server"
],
"env": {
"QISKIT_DOCS_BASE": "ใส่ค่าของคุณ",
"QISKIT_HTTP_TIMEOUT": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
QISKIT_DOCS_BASE envQISKIT_HTTP_TIMEOUT envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub Qiskit ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.0) เข้า registry 4 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Apify MCP Server
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.
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
MCP server for querying and retrieving Qiskit documentation, guides, and API references.
The Qiskit Documentation MCP Server provides AI assistants and agents with seamless access to the complete Qiskit documentation ecosystem. It enables intelligent retrieval of SDK module documentation, implementation guides, and best practices through a standardized Model Context Protocol interface.
The server implements three tools for documentation access:
| Tool | Description | Parameters |
|---|
| search_docs_tool | Search the Qiskit documentation; returns short query-centered snippets by default so the response stays compact for repeated agent use | query: Search query string scope: Search scope filter — all (default), documentation, api, learning, tutorials top_k: Max results to return (default: 5, capped at 10) detail: snippet (default, short excerpt per result) or full (full page body — prefer get_page_tool for a single page) | | get_page_tool | Fetch any Qiskit documentation page and return as markdown | url: Full URL or relative path (e.g., guides/transpile, api/qiskit/circuit) max_length: Max characters to return (default: 20000, 0 for unlimited) offset: Character offset for pagination (default: 0) | | lookup_error_code_tool | Look up a Qiskit/IBM Quantum error code | code: 4-digit error code (e.g., 1002, 7001, 8004) |
The server provides six resources for listing available documentation. Content lists for modules, addons, guides, tutorials, and API packages are dynamically discovered from the documentation sitemap and cached, with hardcoded fallback values used when the sitemap is unreachable.
| Resource URI | Description |
|---|---|
qiskit-docs://modules | List of all Qiskit SDK modules with URL paths |
qiskit-docs://addons | List of Qiskit addon packages with URL paths |
qiskit-docs://guides | List of implementation guides and best practices |
qiskit-docs://tutorials | List of Qiskit tutorials with URL paths |
qiskit-docs://api-packages | List of API packages (runtime, transpiler, REST APIs, etc.) |
qiskit-docs://error-codes | List of Qiskit error code categories |
| Resource URI | Description |
|---|---|
qiskit-docs://modules/{module_name} | Documentation for a specific SDK module |
qiskit-docs://guides/{guide_name} | A specific implementation guide |
qiskit-docs://addons/{addon_name} | Documentation for a specific addon package |
The easiest way to install is via pip:
pip install qiskit-docs-mcp-server
Or using uvx (recommended):
uvx qiskit-docs-mcp-server
This project uses uv for virtual environments and dependencies management. If you don't have uv installed, check out the instructions in https://docs.astral.sh/uv/getting-started/installation/
git clone https://github.com/Qiskit/mcp-servers.git
cd mcp-servers/qiskit-docs-mcp-server
# This will create a virtual environment and install dependencies
uv sync
The server can be configured using environment variables:
| Variable | Description | Default |
|---|---|---|
QISKIT_DOCS_BASE | Base URL for Qiskit documentation | https://quantum.cloud.ibm.com/docs/ |
QISKIT_HTTP_TIMEOUT | HTTP request timeout in seconds | 10.0 |
QISKIT_DOCS_CACHE_TTL | Page cache TTL in seconds | 3600.0 |
QISKIT_SEARCH_CACHE_TTL | Search/JSON cache TTL in seconds | 300.0 |
QISKIT_SEARCH_BASE_URL | Search API base URL | https://quantum.cloud.ibm.com/ |
Create a .env file in the project directory:
# Optional: Customize documentation URLs
QISKIT_DOCS_BASE=https://quantum.cloud.ibm.com/docs/ QISKIT_HTTP_TIMEOUT=15.0 QISKIT_DOCS_CACHE_TTL=3600.0 QISKIT_SEARCH_CACHE_TTL=300.0
uv run qiskit-docs-mcp-server
The server will start and listen for MCP connections.
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": { "qiskit-docs": { "command": "uvx", "args": ["qiskit-docs-mcp-server"] } } }
Add to your Cline MCP settings:
{
"mcpServers": { "qiskit-docs": { "command": "uvx", "args": ["qiskit-docs-mcp-server"] } } }
Note: To run LangChain examples you will need to install the dependencies:
`bash
pip install langchain-mcp-adapters langchain-openai langgraph
`
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient from langchain_openai import ChatOpenAI from langgraph.prebuilt import create_react_agent
async def main():
async with MultiServerMCPClient( { "qiskit-docs": { "command": "qiskit-docs-mcp-server", "args": [], "transport": "stdio", } } ) as client:
agent = create_react_agent( ChatOpenAI(model="gpt-4o"), client.get_tools(), )
response = await agent.ainvoke( {"messages": [("user", "How do I create a quantum circuit in Qiskit?")]} ) print(response"messages".content)
asyncio.run(main())
# Search returns short snippets (not full pages) — cheap to call inside an agent
result = await search_docs_tool("transpiler optimization") print(f"Showing {result['returned_results']} of {result['total_results']} matches") for item in result["results"]: print(f"- {item['title']}: {item['url']}") print(f" {item['snippet']}")
page = await get_page_tool(result"results"["url"]) print(page["documentation"])
Note (behavior change):
search_docs_toolnow returns short, query-centered
snippets by default and caps results to
top_k(default 5). In default
(
detail="snippet") mode each result carries asnippetfield — not the full
textbody — and is limited to `id, url, title, pageTitle, module, section,
snippet
. For the original behavior, passdetail="full"`: it restores each
result's full
textbody and all upstream fields and returns every match
by default (no
top_kcap) — an explicittop_kstill limits the count in
full mode but is not clamped to the snippet-mode ceiling. Prefer
get_page_tool
for a single page's full content.
total_resultsis the grand total of matches;
returned_resultsis the count actually returned (equal tototal_resultsin
full mode unless you set an explicit
top_k).
# Fetch circuit module API reference
result = await get_page_tool("api/qiskit/circuit") print(result["documentation"])
result = await get_page_tool("api/qiskit/circuit", max_length=5000) if result["has_more"]: next_page = await get_page_tool("api/qiskit/circuit", offset=result["next_offset"])
# Look up error code 1002
result = await lookup_error_code_tool("1002") print(result["details"])
| Module | Description |
|---|---|
circuit | Quantum circuit construction and manipulation |
quantum_info | Quantum information theory utilities |
transpiler | Circuit transpilation and optimization |
synthesis | Circuit synthesis algorithms |
dagcircuit | DAG representation of quantum circuits |
passmanager | Transpiler pass manager framework |
converters | Circuit format converters |
compiler | High-level compilation routines |
primitives | Sampler and Estimator primitives |
providers | Backend providers and job management |
result | Job result handling and analysis |
visualization | Circuit and result visualization |
qasm2 | OpenQASM 2.0 support |
qasm3 | OpenQASM 3.0 support |
qpy | Qiskit Python serialization format |
utils | General utility functions |
exceptions | Qiskit exception classes |
| Guide | Description |
|---|---|
quick-start | Get started with Qiskit |
construct-circuits | Build and manipulate quantum circuits |
transpile | Transpile circuits for target backends |
transpiler-stages | Understand transpiler pipeline stages |
configure-error-mitigation | Configure error mitigation for primitives |
configure-error-suppression | Configure error suppression techniques |
primitives | Use Sampler and Estimator primitives |
execution-modes | Job, session, and batch execution modes |
dynamic-circuits | Mid-circuit measurements and classical control |
functions | Overview of Qiskit Functions |
See the
qiskit-docs://guidesresource for the complete list of 30+ available guides.
Large documentation pages are automatically paginated. Use max_length and offset to control content retrieval:
# Fetch first 5000 characters
result = await get_page_tool("api/qiskit/circuit", max_length=5000)
result = await get_page_tool("api/qiskit/circuit", max_length=0)
All responses include rich metadata:
{
"status": "success", "url": "https://quantum.cloud.ibm.com/docs/api/qiskit/circuit", "documentation": "
ตัดมาแค่ช่วงต้น อ่านต่อใน repo