ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

AdrMcp

โดย Atypical-Consultingรุ่น 0.2.1i★ –iรันบนเครื่อง
ชื่อใน registryio.github.Atypical-Consulting/adr-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

MCP server for Architectural Decision Records: navigate, author, validate, link, and analyze them.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: อื่น ๆ

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "adr": {
      "command": "dnx",
      "args": [
        "AdrMcp",
        "--yes"
      ]
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add adr -- dnx AdrMcp --yes

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "adr": {
      "command": "dnx",
      "args": [
        "AdrMcp",
        "--yes"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "adr": {
      "type": "stdio",
      "command": "dnx",
      "args": [
        "AdrMcp",
        "--yes"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub Atypical-Consulting ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 18486 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 14% ของอีก 18486 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 18486 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

AdrMcp ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.1) เข้า registry 4 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี .NET ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Compose Preview Catalogs

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

โดย formulahendryเริ่มต้น↓ 66/สัปดาห์★ 440อัปเดต 14 เดือนที่ผ่านมา

รันบนเครื่อง

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

โดย desktop-commanderกำลังโต★ 211อัปเดต 3 วันที่ผ่านมา

รันบนคลาวด์✓ desktopcommander.app

Compose Preview Catalogs

Browse, inspect and render Jetpack Compose Material 3 and Wear component catalogs.

โดย yschimkeยังใหม่มากอัปเดต วันนี้

รันบนคลาวด์

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

AdrMcp

Table of Contents

  • Features
  • The problem
  • The solution
  • Storage & format
  • Tools
  • Configuration
  • Run
  • Usage
  • Claude skills
  • Develop
  • Continuous integration
  • Project layout
  • Tech Stack
  • Roadmap
  • Contributing

Getting Started

Prerequisites
Run
git clone https://github.com/Atypical-Consulting/AdrMcp.git

cd AdrMcp dotnet restore dotnet build dotnet run --project AdrMcp/AdrMcp.csproj

Every architectural decision, on the record — an MCP server that turns a folder of Markdown ADRs into live tools your AI agent can use: search, author, validate, link, and trace decisions.

🌐 [atypical-consulting.github.io/AdrMcp](https://atypical-consulting.github.io/AdrMcp/)

Features

  • Read & search ADRs — list_adrs, get_adr, search_adrs (lexical or semantic), and get_adr_index for the full decision timeline.
  • Author from a template — create_adr drafts MADR- or Nygard-format ADRs; update_adr replaces or appends a single section.
  • Lifecycle-aware transitions — set_status enforces the ADR lifecycle; supersede_adr creates the replacement and marks/links the old one superseded in a single call.
  • Relationship graph & staleness detection — find_related_adrs / get_adr_graph expose links and supersession chains; find_stale_adrs flags ADRs whose code_refs no longer resolve in the codebase.
  • Conflict & coverage analysis — detect_conflicts surfaces contradictory accepted decisions; coverage_report highlights ADR coverage gaps by architectural area.
  • Preview-by-default writes — every mutating tool defaults to previewOnly: true and returns a unified diff before anything touches disk.
  • Ships as a dotnet tool, NuGet package, and Docker image, plus three bundled Claude Code skills (adr-author, adr-review, adr-supersede) for the judgment layer on top of the raw tools.

The problem

Architectural decisions get made in Slack threads, PR comments, and someone's head — then the reasoning evaporates. Months later a teammate asks "why is it done this way?", nobody remembers, and the decision gets silently re-litigated or accidentally reversed. ADRs fix that — *if* they're written and kept honest. But a folder of Markdown files is inert: you can't ask it what's still accepted, trace what superseded what, or notice a decision that no longer matches the code.

It's worse with AI coding agents: the one collaborator that could keep decisions current has no way to read, write, or reason about them.

The solution

AdrMcp makes that folder a live surface any MCP client can work. It gives your agent tools to list and search decisions, draft new ones from a MADR template, validate structure and links, supersede a decision while preserving its history, and flag stale or conflicting ones — all preview-by-default, so nothing is written without you seeing the diff.

The records stay plain Markdown in git; AdrMcp adds the tools. Built as a .NET 10 stdio MCP server, architecturally modeled on RoselineMCP — layered Tools → Services, [McpServerTool] attributes, shipped as a dotnet tool + Docker image.

Storage & format

ADRs are markdown files under an ADR root (default docs/adr/), one file per decision named NNNN-kebab-title.md, using MADR 4.0 frontmatter + sections:

---

id: 1 title: Use PostgreSQL for persistence status: accepted # proposed | accepted | rejected | deprecated | superseded date: 2026-07-08 tags: [data] links:

  • { type: superseded-by, target: 5 }

code_refs:

  • { path: src/Data/Repository.cs, symbol: PostgresRepository }

Use PostgreSQL for persistence

Context and Problem Statement

...

Decision Outcome

...

Consequences

...

Everything is git-native, human-readable, and diff-able — no database.

Tools

ToolKindDescription
list_adrsreadList/filter ADRs (status, tag, date range)
get_adrreadGet one ADR; optionally only selected ## sections
search_adrsreadLexical (default) or semantic term-vector search
get_adr_indexreadThe decision log / timeline
find_related_adrsreadIncoming/outgoing links + supersession chain
get_adr_graphreadFull relationship graph (nodes + typed edges)
create_adrwriteCreate an ADR from a template (madr or nygard)
update_adrwriteReplace/append a single ## section
set_statuswriteTransition status (enforces the lifecycle)
supersede_adrwriteCreate replacement + mark old superseded + link, in one call
link_adrswriteTyped link between two ADRs (adds inverse)
validate_adrreadMADR compliance: sections, status, dangling links, duplicate ids
detect_conflictsreadExplicit conflicts-with + highly similar accepted ADRs
find_stale_adrsreadADRs whose code_refs no longer resolve
coverage_reportreadADR coverage per architectural area (tag); surfaces gaps
suggest_adr_from_changereadDraft an ADR proposal from a unified diff
render_indexwriteRegenerate the browsable README.md decision index
diff_adrreadDiff two ADRs, or a file vs its canonical rendering

Writes are preview-by-default. Every mutating tool takes previewOnly (default true) and returns a unified diff of the intended change; pass previewOnly=false to write to disk.

Configuration

Resolved in order: CLI arg → env var → default.

SettingCLIEnvDefault
ADR root--adr-root ADR_ROOT /docs/adr
Repo root (for code_refs)--repo-root ADR_REPO_ROOTcurrent directory
Code-linking is provider-based

find_stale_adrs resolves code_refs through an ICodeLinkProvider. The default FileSystemCodeLinkProvider is language-agnostic (a ref resolves if the file exists and, when a symbol is given, that symbol's text is present). A Roslyn (.NET) or codebase-memory provider can be plugged in behind the same interface — deep symbol resolution stays the client's job.

Run

# from source

dotnet run --project AdrMcp -- --adr-root ./docs/adr

as a global tool

dotnet tool install -g AdrMcp adr-mcp --adr-root ./docs/adr

MCP client config
{

"mcpServers": { "adr": { "command": "adr-mcp", "args": ["--adr-root", "/path/to/repo/docs/adr", "--repo-root", "/path/to/repo"] } } }

Docker
docker build -t adr-mcp .

docker run --rm -i -v "$PWD:/workspace" adr-mcp --adr-root /workspace/docs/adr

Usage

Once adr-mcp is registered as an MCP server, an agent calls its tools directly. A typical read-then-write flow:

// "What ADRs do we have about data storage?"

list_adrs({ "tag": "data" }) // → [{ "id": 5, "title": "Use PostgreSQL for persistence", "status": "accepted", "tags": ["data"] }]

// "Draft a decision for switching to gRPC internally" — nothing is written yet create_adr({ "title": "Adopt gRPC for internal services", "template": "madr", "previewOnly": true }) // → unified diff of the new docs/adr/0006-adopt-grpc-for-internal-services.md

// Once the content looks right, write it for real create_adr({ "title": "Adopt gRPC for internal services", "template": "madr", "previewOnly": false })

// Later, retire an old decision in favor of a new one, preserving history supersede_adr({ "oldId": 2, "newTitle": "Replace REST gateway with gRPC", "previewOnly": false })

Claude skills

Three project skills under .claude/skills/ add the judgment/workflow layer on top of the MCP tools (the server provides the mechanics; the skills provide the craft). They activate automatically in Claude Code when the connected AdrMcp server is available:

SkillTriggers onWhat it does
adr-author"write an ADR", "record this decision"Decide if a decision warrants an ADR, frame a sharp Context/Decision/Consequences, draft via create_adr + validate_adr
adr-review"review this ADR", "does this decision hold up"Structural + substantive critique against a rubric, using validate_adr / detect_conflicts
adr-supersede"we changed our mind", "retire this decision"Pick the right lifecycle move and drive supersede_adr / set_status with correct linking

Develop

dotnet build AdrMcp.slnx

dotnet test AdrMcp.slnx # unit tests + MCP-over-stdio integration tests dotnet pack AdrMcp/AdrMcp.csproj -c Release -o ./artifacts

Continuous integration

CI/CD runs on GitHub Actions, modeled on RoselineMCP:

WorkflowTriggerWhat it does
ci.ymlpush / PR to main/devBuild + test matrix (ubuntu/windows/macos); 80% line-coverage gate on ubuntu
codeql.ymlpush / PR / weeklyCodeQL security analysis (C#)
pages.ymlpush to site/** on devPublish the landing page to GitHub Pages
release-please.ymlpush to devMaintain a release PR (Conventional Commits); on merge, publish NuGet + MCPB + MCP Registry + GHCR image

Releases are automated with release-please: merge the release PR it opens to ship. See PUBLISH.md.

Project layout

AdrMcp/

├── Interfaces/ service contracts (IAdrRepository, ICodeLinkProvider, …) ├── Services/ repository, templates, validation, graph, search, embeddings, code-links ├── Tools/ Navigation / Authoring / Intelligence / Utility MCP tools ├── Models/ Adr, AdrStatus, AdrLink, CodeRef, response DTOs └── Program.cs DI wiring + stdio MCP host


Tech Stack

  • .NET 10
  • ModelContextProtocol
  • xunit
  • xunit.runner.visualstudio
  • DiffPlex
  • Markdig
  • Microsoft.Extensions.Hosting
  • YamlDotNet

Roadmap

  • Real embedding-backed semantic search for search_adrs / detect_conflicts (beyond term-vector similarity)
  • Roslyn-based ICodeLinkProvider for deep C# symbol resolution in find_stale_adrs
  • Additional ADR templates beyond MADR/Nygard (e.g. Y-statements)
  • Editor extension (VS Code / JetBrains) to browse and visualize the decision graph
  • Broaden the CI coverage gate and publish to additional package registries

See the open issues for details and to propose new ideas.

Atypical MCP servers

Part of a suite of Model Context Protocol servers by Atypical Consulting:

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx