Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Explore likely radio services, channels, and emissions from 108 MHz to 1 GHz.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"mellow-tapir": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/guycole/mellow-tapir-mcp:1.0.2"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add mellow-tapir -- docker run -i --rm ghcr.io/guycole/mellow-tapir-mcp:1.0.2วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"mellow-tapir": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/guycole/mellow-tapir-mcp:1.0.2"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"mellow-tapir": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/guycole/mellow-tapir-mcp:1.0.2"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub guycole ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.2) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, topo^alpin
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.
Avalanche bulletins and mountain weather forecasts for any place in the Alps.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
This directory contains an MCP server with both stdio and streamable HTTP transports. The server uses data from src/tapir_schema/seed.json and source schema text from src/tapir_schema/schema.sql, then serves a read-only SQLite catalog.
Use the existing local virtual environment:
cd src/tapir_mcp_server
./venv/bin/python -m pip install -r requirements.txt
cd /Users/gsc/github/mellow-tapir/src/tapir_mcp_server
./venv/bin/python -m mcp_server.build_db \ --db-path data/tapir.sqlite \ --seed-path ../tapir_schema/seed.json \ --schema-path ../tapir_schema/schema.sql
cd /Users/gsc/github/mellow-tapir/src/tapir_mcp_server
TAPIR_DB_PATH=data/tapir.sqlite \ TAPIR_SEED_PATH=../tapir_schema/seed.json \ TAPIR_SCHEMA_PATH=../tapir_schema/schema.sql \ ./venv/bin/python -m mcp_server --transport stdio
cd /Users/gsc/github/mellow-tapir/src/tapir_mcp_server
TAPIR_DB_PATH=data/tapir.sqlite \ TAPIR_SEED_PATH=../tapir_schema/seed.json \ TAPIR_SCHEMA_PATH=../tapir_schema/schema.sql \ REFERENCE_LLM_MODEL=gpt-oss:20b \ OLLAMA_BASE_URL=http://127.0.0.1:11434 \ ./venv/bin/python -m mcp_server \ --transport http --host 0.0.0.0 --port 8000 --path /mcp
Start Ollama and ensure the reference model is available:
ollama serve
In another terminal:
ollama pull gpt-oss:20b
ollama run gpt-oss:20b "Summarize the purpose of this MCP server in one sentence."
Run the MCP server with the same local Ollama endpoint:
cd /Users/gsc/github/mellow-tapir/src/tapir_mcp_server
TAPIR_DB_PATH=data/tapir.sqlite \ TAPIR_SEED_PATH=../tapir_schema/seed.json \ TAPIR_SCHEMA_PATH=../tapir_schema/schema.sql \ REFERENCE_LLM_MODEL=gpt-oss:20b \ OLLAMA_BASE_URL=http://127.0.0.1:11434 \ ./venv/bin/python -m mcp_server --transport http --host 127.0.0.1 --port 8000 --path /mcp
When connected with an MCP client, call ask_reference_model with a test prompt. If Ollama is reachable and the model is present, the tool returns a response body and metadata including model and done status.
This sample session verifies end-to-end behavior:
gpt-oss:20b.Terminal 1: start Ollama
ollama serve
Terminal 2: pull model and optional sanity prompt
ollama pull gpt-oss:20b
ollama run gpt-oss:20b "Reply with: Ollama ready"
Terminal 3: start Tapir MCP server
cd /Users/gsc/github/mellow-tapir/src/tapir_mcp_server
./venv/bin/python -m mcp_server.build_db \ --db-path data/tapir.sqlite \ --seed-path ../tapir_schema/seed.json \ --schema-path ../tapir_schema/schema.sql
TAPIR_DB_PATH=data/tapir.sqlite \ TAPIR_SEED_PATH=../tapir_schema/seed.json \ TAPIR_SCHEMA_PATH=../tapir_schema/schema.sql \ REFERENCE_LLM_MODEL=gpt-oss:20b \ OLLAMA_BASE_URL=http://127.0.0.1:11434 \ ./venv/bin/python -m mcp_server --transport http --host 127.0.0.1 --port 8000 --path /mcp
Terminal 4: sample client requests
cd /Users/gsc/github/mellow-tapir
/Users/gsc/github/mellow-tapir/src/tapir_mcp_server/venv/bin/python - <<'PY' import anyio from mcp.client.session import ClientSession from mcp.client.streamable_http import streamable_http_client
async def main() -> None: async with streamable_http_client("http://127.0.0.1:8000/mcp") as ( read_stream, write_stream, ): session = ClientSession(read_stream, write_stream) async with session: await session.initialize()
classify = await session.call_tool( "classify_frequency", {"frequency": "121.5"} ) print("classify_frequency:") print(classify.content[0].text)
llm = await session.call_tool( "ask_reference_model", { "prompt": "Explain 121.5 MHz in one sentence.", "temperature": 0.1, }, ) print("ask_reference_model:") print(llm.content[0].text)
anyio.run(main) PY
Expected outcome:
classify_frequency returns aviation emergency channel data around 121.5 MHz.ask_reference_model returns a completion from local Ollama model gpt-oss:20b.classify_frequencyfrequency as numeric Hz, MHz string (121.5), or explicit unit (121.5MHz).query_channelslower_hz, upper_hz, optional limit.search_servicesservice_query, optional limit.execute_readonly_sqlSELECT or WITH query and optional limit.ask_reference_modelprompt, optional system_prompt, optional temperature.gpt-oss:20b (override with REFERENCE_LLM_MODEL).tapir://metadatatapir://sources/seed-jsontapir://sources/schema-sqlBuild locally:
cd /Users/gsc/github/mellow-tapir
docker build -f src/tapir_mcp_server/Dockerfile -t tapir-mcp:local .
Run:
docker run --rm -p 8080:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \ tapir-mcp:local
The GitHub Actions workflow in .github/workflows/tapir-mcp-server-image.yml publishes images to GitHub Container Registry.
The SQLite database in data/tapir.sqlite is generated from two source files:
src/tapir_schema/seed.json: canonical editable catalog of bands, emissions, and channels.src/tapir_schema/schema.sql: source PostgreSQL schema retained for provenance and parity checks.Generation is handled by mcp_server.build_db, which:
band, band_emission, channel, dataset_metadata),seed.json,When updating the dataset in the future:
src/tapir_schema/seed.json.src/tapir_schema/schema.sql if source-schema intent changed.cd /Users/gsc/github/mellow-tapir/src/tapir_mcp_server
./venv/bin/python -m mcp_server.build_db \ --db-path data/tapir.sqlite \ --seed-path ../tapir_schema/seed.json \ --schema-path ../tapir_schema/schema.sql
The container image build also runs this same build step during docker build, so image contents stay aligned with the latest checked-in seed.json and schema.sql.