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

Downtrace

โดย RadW2020รุ่น 0.3.1i★ –iรันบนเครื่อง
ชื่อใน registryio.github.RadW2020/downtrace

ติดตั้ง

ภาพรวม

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

Ask a Downtrace project what changed in a Node.js backend in production, and why.

สามเสาของ PopNx MCP

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

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

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

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: อื่น ๆ
  • ต้องใส่ค่าเหล่านี้: DOWNTRACE_URL, DOWNTRACE_TOKEN

ติดตั้ง

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

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

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

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

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

{
  "mcpServers": {
    "downtrace": {
      "command": "npx",
      "args": [
        "-y",
        "@downtrace/mcp"
      ],
      "env": {
        "DOWNTRACE_URL": "ใส่ค่าของคุณ",
        "DOWNTRACE_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

claude mcp add downtrace --env DOWNTRACE_URL='ใส่ค่าของคุณ' --env DOWNTRACE_TOKEN='ใส่ค่าของคุณ' -- npx -y @downtrace/mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

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

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

{
  "mcpServers": {
    "downtrace": {
      "command": "npx",
      "args": [
        "-y",
        "@downtrace/mcp"
      ],
      "env": {
        "DOWNTRACE_URL": "ใส่ค่าของคุณ",
        "DOWNTRACE_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

เปิดใน VS Code

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

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

{
  "servers": {
    "downtrace": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@downtrace/mcp"
      ],
      "env": {
        "DOWNTRACE_URL": "ใส่ค่าของคุณ",
        "DOWNTRACE_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

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

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

ค่าที่ต้องใส่เอง

  • DOWNTRACE_URL จำเป็น env
    The address of your Downtrace
  • DOWNTRACE_TOKEN ความลับ env
    An access credential of the project, of level operate; without it the server is read-only

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

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

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

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

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

  • ✓ ผ่าน

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

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

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

    ยังมีคนดูแล

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

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

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

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

  • – ไม่เกี่ยว

    endpoint ตอบ

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

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

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

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

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

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

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

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

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

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

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

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

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

ต้องใส่ค่าเหล่านี้: DOWNTRACE_URL, DOWNTRACE_TOKEN

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

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

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

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.1) เข้า registry 8 วันที่ผ่านมา

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

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

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

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Symantec Cloud DLP AIops

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

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

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

Spec Driven Development

โดย formulahendry

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

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

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

รันบนคลาวด์★ 211อัปเดต เมื่อวาน
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

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

@downtrace/mcp

⚠️ Not production ready. Downtrace is a closed free pilot: no plans, no billing and no SLA. The ingestion protocol is v0 and can still change between minor versions. Install it where a dependency that is still moving is acceptable.

Downtrace as tools a coding agent can discover and use: the queries and the operations, over MCP.

product.md is explicit that this is not an optional integration — «a product that could only be operated from the interface would fail half of its users» — and that reading is not enough: «a report exporter does not satisfy it: an agent must be able to operate the product».

Running it

{

"mcpServers": { "downtrace": { "command": "npx", "args": ["-y", "@downtrace/mcp"], "env": { "DOWNTRACE_URL": "https://your-downtrace", "DOWNTRACE_TOKEN": "an access credential of level operate" } } } }

DOWNTRACE_URL is required. DOWNTRACE_TOKEN is not: without it the server comes up read-only, every operation is still listed, and calling one says what credential it would need. That is more use than refusing to start.

The shared administration password is not the token for a project. This server sends its token as a Bearer token, and in that shape the password opens list_projects and read_credential and no tool about a project: those answer it a 403 with needs: "access credential", because a project's reads and operations need an access credential of that project.

The token is read from the environment and never from an argument: an argument ends up in a process list and in a shell history, and this one can close findings.

What it speaks

Standard input and output, JSON-RPC 2.0. Tools only — no resources, no prompts.

Each message is answered when its own work is done, not after the one before it: a ping is answered at once while a slow read is still waiting for the cloud, and two calls are answered in the order they finish, each carrying the id of its request. How many are in flight is up to the client; each call waits for the cloud for at most 30 seconds. When the input ends, the calls still in flight are answered before the server exits.

`notifications/cancelled` stops the call it names: the request to the cloud is aborted and the cancelled request gets no answer — none at all, even when its answer was ready but not yet written. A cancellation that names no request in flight does nothing. Cancelling an operation stops the waiting, not necessarily the operation: if its request had already reached the cloud, it may have been applied. An operation whose cancellation matters passes its own idempotencyKey: the retry with that key either applies it or answers with what the first one did.

MCP revisions `2025-11-25`, `2025-06-18` and `2024-11-05`, and the client's `initialize` chooses. A revision this server speaks is answered with that same one. Any other is answered with the newest one this server speaks that is not later than it; one earlier than all three, a value that is not a revision, or none at all, with 2025-11-25. So a client that asks for 2025-03-26 gets 2024-11-05: that revision obliges a server to accept JSON-RPC batches, which the next one withdrew, and this server does not implement it. A 2024-11-05 session gets exactly the messages it always got.

From `2025-06-18`, every tool carries its hints (annotations). A read says readOnlyHint: true. An operation says readOnlyHint: false and idempotentHint: false —without its key, repeating an operation is another operation— and destructiveHint: true when it can take back or overwrite what somebody decided: closing a finding, accepting a reference, annotating a finding (which can reopen it), resolving, ignoring or unignoring an error, a silence and its lifting. The ones that only add a record beside the others —a rating, an assessment, a note on an error, a regression, a capture request— say destructiveHint: false. No tool reaches beyond the cloud, so none is open-world. They are hints: what a credential may do is still decided by the cloud, by its level.

From `2025-06-18`, a result carries `structuredContent` beside its text: the JSON object the cloud answered, parsed as it came, so anything under fromService is still wrapped. There is no outputSchema, because declaring one obliges a server to keep to it and the shape belongs to the API. A refusal, or an answer that is not a JSON object, carries only its text.

In every revision, the schemas say what the API accepts. A closed set of values is an enum, an instant a date-time, the length of the errors list a whole number from 1 to 200, a page of a capture's requests a whole number from 1 to 100 from a place of 0 onwards, and a page of changes a whole number from 1 to 50 from a place of 0 onwards; identifiers are strings. The values of each enum are written here, because this package does not read the cloud's code, and an end-to-end walk compares them with the cloud's in both directions.

A failure is a result with isError, the HTTP status and the cloud's own sentence. There is no error code of this server's own. A credential refused for its level is told which: the cloud answers 403 with the level the credential has and the level the operation needs —or access credential, to the administration password at a tool about a project—, while a token that is not a usable credential —invented, expired or revoked— gets the 401, the same one for the three.

An answer cut short is a result with isError too: its status came, and then the connection dropped or the 30 seconds ran out before the whole body did. It says the status the cloud answered, that its answer was cut short, and what cut it. An operation's then says it may or may not have been applied, and names the idempotencyKey it was sent with, the one this server generated when the call passed none: called again with the same arguments and that key, it is not applied a second time.

No dependencies. The protocol a tools-only server needs is three methods, and it is written out here. See ADR 0078 for the argument and for the risk.

The tools

Named after the capability, not the route: an agent looks for "verify the recovery", not for GET /findings/{id}/verification.

read_credentialask it first when you do not know the project's slug: the project your credential belongs to, its level and expiry, the environments it reaches, and every route of the project with the level it needs and whether your credential opens it. Given the administration password, level admin, no project and every route closed
list_projectsevery project's slug, with its open findings and its last batch, as the front page reads them. Only the administration password opens it, and the password opens no tool about a project
project_statustraffic, endpoints —ordered by the column you name, as on the page—, dependencies, runtime, coverage, budget
changes_sinceask it first when a session starts, with the instant you last looked: what opened, closed or was first seen after it, in one bounded answer instead of four lists to diff. A finding opened (when a second check confirmed it) or closed, an error first seen, a deploy first seen —with the version it followed and, when it is the newest of its environment, its comparison with that one as counts, or why there is none— and an episode of lost coverage (coverage) opened or ended. Newest first, one item for each thing with its events in the window, its id —the one the other tools take— and, under resource, where to read what it is about and the version it has there: a finding's is its report's, the one read_report gives and close_finding takes; a deploy's and an episode's are null, because they are records of the status. Something that was already there and still is, is not a change: list_findings, list_errors and project_status say how the project is now. The window is (since, until], and the until of an answer is the since of the next. It never cuts the window without saying so: total is the window's, leftOut is how many this page does not hold and next is the address of the page that does, with offset moved on and until fixed. When no batch arrived after since, telemetry.arrivedSince is false and the answer is missing telemetry, not a project where nothing changed, however short the list; telemetry.environments says it for each environment
list_findings, read_findingwhat was detected
list_errors, read_errorevery error observed, from the first one, with no traffic minimum —ordered by last seen, first seen or how many times, as on the page—
resolve_error, ignore_error, unignore_error, annotate_errortriage one: dealt with, or not now and until when. None of them silences a detector
read_reportstart here: facts, hypotheses with their state, recommendations tied to the hypothesis they rest on, and what it cannot say
compare_windowsthe differences ordered by how much they explain
verify_recoverydid what I changed work
read_historyfurther back than the fine-grained data goes; environment reads one environment, the same in both windows, and without it every environment is read together; with baselineFrom and baselineTo (both or neither), the comparison of the two windows the history page shows, with baseline and comparison; a route past the cut of a window with more routes than it read is unevaluable, with change: "unknown", not new or gone
list_captures, read_capture, request_captureask for detail on a route or a dependency. read_capture reads the capture's summary: how many requests each instance kept and how large they are, without them. A delivery that did not fit whole in the evidence budget was stored with its oldest requests left out, and its coverage.notStored says how many, beyond what one delivery may hold and beyond what the capture had left: they were served, and they are not in the evidence. Its coverage.dependenciesTruncated says how many that arrived had their list of dependencies cut. A capture is finished when pending is false: one in collecting already holds an instance's evidence and is still waiting for the other instances that served its footprint, until collectingUntil, its window and two minutes after that first delivery, because an instance that took the order late watches a whole window from then; retryAfterSeconds is when to read it again
read_captured_requeststhe requests a capture kept, a page at a time, each with its index, its place in its delivery: offset at an index and limit at 1 is that one request. Nobody has to put a whole capture in their context to know what happened
close_finding, accept_reference, assess_hypothesis, give_feedbackdecide
annotate_finding, record_regression, list_regressionswhat you know and Downtrace could not measure
silence_alerts, lift_silencestop being told, with a scope and an end

Every operation carries an idempotency key, so a retry after a dropped connection is not a second operation. Each operation takes an optional idempotencyKey, and its description says when a key may be reused: the retry of the same operation after a failure or a dropped connection passes the same key, and the cloud answers it with the result of the first call; a new operation passes a different key or none, and without a key the server generates one. A key identifies one operation — the same note written twice on purpose needs two keys — and the cloud refuses a key that was already used for a different request. The three the product names as depending on a report — closing, assessing a hypothesis, accepting a reference — require the report's version, the one read_report gives: the operation is deci

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

ถาม PopNx