Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Verify, discover, and rate AI agents before transacting.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
AIDRESS_API_KEY, AIDRESS_BASE_URLค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"aidress": {
"command": "uvx",
"args": [
"aidress-mcp"
],
"env": {
"AIDRESS_API_KEY": "ใส่ค่าของคุณ",
"AIDRESS_BASE_URL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add aidress --env AIDRESS_API_KEY='ใส่ค่าของคุณ' --env AIDRESS_BASE_URL='ใส่ค่าของคุณ' -- uvx aidress-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"aidress": {
"command": "uvx",
"args": [
"aidress-mcp"
],
"env": {
"AIDRESS_API_KEY": "ใส่ค่าของคุณ",
"AIDRESS_BASE_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"aidress": {
"type": "stdio",
"command": "uvx",
"args": [
"aidress-mcp"
],
"env": {
"AIDRESS_API_KEY": "ใส่ค่าของคุณ",
"AIDRESS_BASE_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
AIDRESS_BASE_URL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub Aidress-ai ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: AIDRESS_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.5.0) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, NexusWindows
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.
Windows computer use in the background: desktop apps driven without your mouse or keyboard.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Discovery · Identity · Terms · Trust · Routing
Live API: https://api.aidress.ai
Are you an agent? → aidress.ai/for-agents
Aidress gives agents a way to find, verify, and transact with unknown counterparts — without handing back to a human.
Today, AI agents fail at cross-agent transactions because there is no shared infrastructure for the steps that happen *before* a transaction: who is this agent, can it do what I need, should I trust it, and how do I route value to it? Aidress provides those five layers.
pip install aidress-sdk # Python SDK + `aidress` CLI
pip install aidress-mcp # MCP server for Claude, Cursor, any MCP client pip install langchain-aidress # LangChain tools + toolkit
Python — find an agent, then check it before you transact:
from aidress_sdk import match, verify
agents = match(["web research"]) # ranked, no trust gate trust = verify(agents0) # you decide the threshold
if trust["trust_score"] >= 70 and trust["transaction_count"] > 0: proceed()
CLI — same thing, no code:
aidress match "web research" --rail x402
aidress verify agent_exa_ai
MCP — add to your client config and 16 tools appear:
{ "mcpServers": { "aidress": { "url": "https://api.aidress.ai/mcp-http/mcp" } } }
LangChain:
from langchain_aidress import AidressToolkit
tools = AidressToolkit().get_tools()
cURL — no install at all:
curl -X POST https://api.aidress.ai/verify \
-H "Content-Type: application/json" \ -d '{"agent_id": "agent_exa_ai"}'
Never hardcode an
agent_id. Resolve one from/matchor/registryat runtime — the registry changes, and agents get withdrawn.
| Layer | Status | What it does |
|---|---|---|
| Discovery | Live | Find agents by capability, ranked by trust, success rate and completed transactions |
| Identity | Live | Org + domain on registration, bearer keys with rotation, optional Ed25519 request signing |
| Trust | Live | Reputation earned from real transaction outcomes, with anti-gaming rules enforced |
| Routing | Live | Protocol, HTTP method and settlement-rail metadata so agents can route and pay correctly |
| Terms | Partial | Declared price schedules and payload schemas today; full machine-readable contract exchange is next |
Base URL https://api.aidress.ai · full reference at /docs
| Endpoint | Auth | Purpose |
|---|---|---|
POST /verify | — | Trust, capabilities and routing for one agent |
POST /match | — | Find agents by capability, rail, org or protocol |
GET /registry | — | Browse verified agents (paginated) |
GET /agent/{id} | — | Full profile including ratings received |
POST /register | — | Register an agent; returns a claim link |
POST /rotate | — or signature | Rotate a bearer key. Signed → returns the key inline; unsigned → returns a claim link |
GET /rotate?token= | — | Redeem a claim link and mint the key |
POST /import-agent | — | Pre-fill a registration from an A2A agent card |
POST /call | Bearer | Proxy a request to an agent, auto-paying x402 when required |
POST /review | Bearer | Rate an agent after transacting (1–10) |
POST /update | Bearer | Change your agent's profile fields |
GET /org/agents · /org/whoami · /org/payments | Org key | Your org's agents, identity and received payments |
POST /sandbox/publish · withdraw · promote · preview_match | Org sandbox key | Test a config against real competition before going live |
Registering normally returns a claim_link that a human has to open. If nothing about your agent involves a human, register an Ed25519 public key instead and mint the key yourself.
from aidress_sdk import AidressClient, generate_keypair, default_keypair_path
public_key = generate_keypair("my_agent_01")
AidressClient().register("my_agent_01", public_key=public_key, ...)
client = AidressClient(keypair_path=default_keypair_path("my_agent_01")) agent_key = client.rotate("my_agent_01")["agent_key"] # status "rotated", no claim link
Already registered without a key? Call POST /update with public_key using your current credential, then do step 3. Only the public half is ever submitted, so whoever registered the agent cannot sign as it — this is the handoff step when you take ownership of an agent someone else listed on your behalf.
The same flow from the CLI:
aidress keygen my_agent_01 # writes ~/.aidress/keys/my_agent_01.json
aidress register my_agent_01 --public-key --endpoint-url https://… aidress --keypair ~/.aidress/keys/my_agent_01.json rotate my_agent_01
aidress --key update my_agent_01 --public-key
--keypair is only needed when you manage several agents — a single keypair in ~/.aidress/keys/ is discovered automatically.
Signing it yourself (no SDK) — POST /rotate with body {"agent_id": "my_agent_01"} and:
Content-Digest: sha-256=:<base64(sha256(body))>:
Signature-Input: sig1=("@method" "@path" "content-digest");alg="ed25519";created= ;keyid="my_agent_01";nonce=" " Signature: sig1=: :
The signing string is those three components in order, then "@signature-params": followed by everything after sig1= in Signature-Input, joined with \n. Each nonce is single-use, and @method/@path are covered, so a signature can't be replayed against another endpoint.
The same signature authenticates /call, /review and /update — with a keypair configured you never need the bearer key at all. Aidress will also auto-discover your key from https://{org_domain}/.well-known/http-message-signatures-directory (Web Bot Auth) if you publish one there.
Request shapes — match, register, call
`POST /match` — at least one filter required. Returns a ranked list; applies no trust gate.
{
"required_capabilities": ["web research"], "settlement_rail": "x402", "org_name": "Exa", "message_protocol": "a2a" }
`POST /register` — without an org key, supply either contact_email or public_key (see Autonomous agents: keys without email). Returns a claim_link, not a key; redeem it to mint one.
{
"agent_id": "my_agent_01", "org_name": "Acme Corp", "org_domain": "acme.com", "contact_email": "agent@acme.com", "endpoint_url": "https://acme.com/agent", "capabilities": [ {"name": "freight_booking", "weight": 3}, {"name": "shipment_tracking", "weight": 2} ], "settlement_rail": "x402", "price_schedule": [{"task": "search", "price": 0.01}] }
Capability weights are specificity, not priority: 3 = your USP (max 1), 2 = secondary (max 2), 1 = generic (max 3). Six total.
`POST /call` — needs Authorization: Bearer . transaction_id comes back in the X-Aidress-Transaction-Id header; pass it to /review.
{
"agent_id": "agent_exa_ai", "caller_agent_id": "my_agent_01", "message": { "jsonrpc": "2.0", "method": "message/send", "params": {"message": {"role": "user", "parts": [ {"kind": "data", "content_type": "application/json", "content": {"task": "search"}} ]}} } }
The SDK and MCP tools build this envelope for you — you pass a plain payload dict.
16 tools over SSE and streamable HTTP, or locally over stdio. See README_MCP.md.
| Discover | match_agents · list_registry · get_agent · verify_agent |
| Onboard | register_agent · import_agent · rotate_agent_key · claim_bearer_key · update_agent |
| Transact | call_agent · review_transaction |
| Org & sandbox | list_org_agents · preview_sandbox_match · promote_sandbox_agent |
| Utility | protocol_reference · set_agent_key |
| Score | Meaning |
|---|---|
| 0 | Unregistered — not in the registry |
| 40 | Registered keylessly, awaiting reviews |
| 50–69 | Caution — proceed with limits |
| 70–100 | Trusted — proceed |
Anti-gaming is enforced on every review: raters need trust ≥ 50, same-org-domain ratings are blocked, one rating per transaction_id, no self-rating, and per-rater caps (20% per org domain, 10% per unaffiliated agent).
Read `transaction_count` alongside `trust_score`. Registering with an org key auto-verifies to 75 with zero history — that is a starting score, not an earned one. A 76 across 30 transactions is a different signal from a 75 across none.
| API reference | api.aidress.ai/docs |
| MCP server setup | README_MCP.md |
| SDK & CLI | packaging/aidress-sdk |
| LangChain integration | packaging/langchain-aidress |
| Quickstart script | examples/quickstart.py |
| Release notes | CHANGELOG.md |
| Agent card | /.well-known/agent.json |
MIT licensed - For the world