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

AnnealBridge

โดย TheTsungYingรุ่น 0.4.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.TheTsungYing/annealbridge

ติดตั้ง

ภาพรวม

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

Optimization middleware for AI agents: JSON problem in, verified and ranked solutions out.

สามเสาของ PopNx MCP

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

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

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

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

ติดตั้ง

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

ก่อนติดตั้ง

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

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

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

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

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

{
  "mcpServers": {
    "annealbridge": {
      "command": "uvx",
      "args": [
        "annealbridge",
        "mcp"
      ],
      "env": {
        "ANNEALBRIDGE_ALLOW_REMOTE": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

claude mcp add annealbridge --env ANNEALBRIDGE_ALLOW_REMOTE='ใส่ค่าของคุณ' -- uvx annealbridge mcp

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

เปิดใน Cursor

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

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

{
  "mcpServers": {
    "annealbridge": {
      "command": "uvx",
      "args": [
        "annealbridge",
        "mcp"
      ],
      "env": {
        "ANNEALBRIDGE_ALLOW_REMOTE": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

เปิดใน VS Code

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

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

{
  "servers": {
    "annealbridge": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "annealbridge",
        "mcp"
      ],
      "env": {
        "ANNEALBRIDGE_ALLOW_REMOTE": "ใส่ค่าของคุณ"
      }
    }
  }
}

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

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

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

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

  • ANNEALBRIDGE_ALLOW_REMOTE env
    Set to true to allow remote vendor backends; local backends need nothing.

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

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

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

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

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

  • ✓ ผ่าน

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

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

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

    ยังมีคนดูแล

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

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

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

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

  • – ไม่เกี่ยว

    endpoint ตอบ

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

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

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

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

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

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

เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP

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

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

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

GitHub

server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้

โดย githubใช้กันมาก★ 34.2Kอัปเดต 6 วันที่ผ่านมา

บนเครื่องหรือคลาวด์

Desktop Commander

MCP server for terminal commands, file operations, and process management

โดย wonderwhy-erใช้กันมาก↓ 709.6K/สัปดาห์★ 10.2Kอัปเดต 18 วันที่ผ่านมา

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

Cloudflare MCP

Cloudflare MCP servers

โดย cloudflareใช้กันมาก★ 4.4Kอัปเดต 14 เดือนที่ผ่านมา

รันบนคลาวด์✓ mcp.cloudflare.com

README จากผู้ทำ

เปิดอ่าน README

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

AnnealBridge

English | 繁體中文

Combinatorial optimization middleware for AI agents. An agent describes *what* to optimize as structured JSON; AnnealBridge decides *how* to encode and solve it, checks every answer against the original problem, and returns ranked, verified solutions over MCP, a CLI, or plain Python.

flowchart LR

U[Natural language] --> A[AI agent] A -->|OptimizationProblem JSON variables · objective · constraints| B subgraph B[AnnealBridge] direction LR V[validate] --> C[compile BQM / CQM] --> S[solve local or remote] --> R[re-validate against the original problem] --> K[rank] end B -->|SolveResult ranked, verified solutions| A A --> N[Natural-language answer]

Quick start

pip install annealbridge

A 0/1 knapsack: four items, capacity 10, maximize value. No file needed.

from annealbridge.models import OptimizationProblem

from annealbridge.orchestration import OptimizationService

problem = OptimizationProblem.model_validate({ "version": "1.0", "name": "knapsack", "variables": [{"name": n, "type": "binary"} for n in ["a", "b", "c", "d"]], "objective": {"direction": "maximize", "linear_terms": [ {"variable": "a", "coefficient": 10}, {"variable": "b", "coefficient": 8}, {"variable": "c", "coefficient": 7}, {"variable": "d", "coefficient": 6}]}, "constraints": [{"id": "capacity", "type": "hard", "operator": "<=", "rhs": 10, "terms": [ {"variable": "a", "coefficient": 6}, {"variable": "b", "coefficient": 5}, {"variable": "c", "coefficient": 4}, {"variable": "d", "coefficient": 3}]}], })

result = OptimizationService().solve(problem) print(result.status) # success print(result.solutions[0].variables) # {'a': 1, 'b': 0, 'c': 1, 'd': 0} print(result.solutions[0].objective_value) # 17.0

Domain failures come back as results, never as exceptions: result.status is one of success, infeasible, invalid_problem, resource_limit_exceeded, backend_unavailable, configuration_error or solver_error. See docs/output-format.md.

Optional extras:

pip install "annealbridge[mcp]"       # + MCP server (annealbridge-mcp)

pip install "annealbridge[dwave]" # + D-Wave cloud backends pip install "annealbridge[all]" # everything pip install "annealbridge[gpu]" # + PyTorch, for simulated_bifurcation on CUDA

[gpu] is deliberately not part of [all]: PyTorch is a large download, and on Windows the wheel PyPI serves is the CPU-only build, so a CUDA run needs torch installed from PyTorch's own index first — see docs/backends.md.

Use it from an AI agent (MCP)

With uv installed, add the server to claude_desktop_config.json (or your host's equivalent) and restart the host; where Claude Desktop, Claude Code and Codex keep that configuration is listed in docs/mcp.md. The first run fetches the package into uvx's own cached environment; that download — numpy, dimod, dwave-samplers and the rest — can take tens of seconds, long enough for a host's start-up timeout to show the server as disconnected. Warm the cache once in a terminal first:

uvx --from "annealbridge[mcp]" annealbridge-mcp --version

It resolves the environment and prints the version; from then on the host starts from that cache.

{

"mcpServers": { "annealbridge": { "command": "uvx", "args": ["--from", "annealbridge[mcp]", "annealbridge-mcp"] } } }

Claude Code registers it in one line:

claude mcp add annealbridge -- uvx --from "annealbridge[mcp]" annealbridge-mcp

Optimizing is then an ordinary chat:

You: I can carry 10 kg. Item A is worth 10 and weighs 6, B is worth 8

and weighs 5, C is worth 7 and weighs 4, D is worth 6 and weighs 3. Which

ones should I take?

Behind the reply, the agent writes the request as problem JSON and calls solve_optimization. Every solution comes back re-validated against the original constraints, with optimality_proven: true on the exhaustive exact backend; a document the server rejects comes back as invalid_problem with every error and a fix for each, which the agent applies before sending it again. Before solving on a remote backend, or on a large problem, it calls validate_optimization_problem first, so a mistake costs nothing; it calls get_optimization_capabilities when it needs the backend list or the full schema.

Agent: Take A and C: value 17 at exactly 10 kg. The runners-up are A

and D (16, at 9 kg) and B and C (15, at 9 kg). This is the proven optimum.

The wording is the agent's; the numbers are the tool result. Another tool, recommend_backend, ranks the backends for a problem and is advisory only; when you did not name a backend and more than one local backend fits, the server instructions tell the agent to show the top entries and ask which to run rather than to decide for you.

If your host lists prompts in its input menu, three of them — pick_subset, assign and schedule_shifts — walk the agent from your own sentence to a problem document of that everyday shape, which it then solves. The server also serves resources: the seven example documents under annealbridge://examples/ and the full problem schema at annealbridge://schema, so an agent can read a complete example or the schema itself instead of guessing.

What it is not for. AnnealBridge does not handle continuous (real-valued) variables, non-linear objectives or non-linear constraints. Only exact proves that an answer is optimal or that no feasible one exists, and by default it takes at most 24 compiled variables (slack bits included); the other local backends (simulated_annealing, tabu, simulated_bifurcation) are heuristics whose best answer may not be the optimum. See the Backends table below and docs/limitations.md.

Any stdio-capable MCP host works the same way, a streamable-http transport exists, and pipx or a pip-installed server behind an absolute path work in place of uvx. uvx reuses the environment it resolved on its first run, so a new release reaches an existing install only after uv cache clean annealbridge and a host restart; see docs/mcp.md.

Use it from the command line

Save the problem JSON below as knapsack.json, then:

annealbridge solve knapsack.json
Problem:   knapsack

Backend: exact Status: success Attempts: 1 Elapsed: 2.7 ms

Best solution (rank 1) objective (maximize): 17 soft violation score: 0 item_a = 1 item_b = 0 item_c = 1 item_d = 0

Hard constraints: 1 / 1 satisfied Soft constraints: 0 violations Optimality proven: yes

Elapsed is the service's own wall clock and varies from run to run. Add --json for the full SolveResult, --backend simulated_annealing to override the backend, or try validate, recommend, capabilities, example and export-schema. See docs/cli.md.

The problem JSON

The document behind the MCP and CLI examples above, the reduced form of examples/knapsack.json:

{

"version": "1.0", "name": "knapsack", "variables": [ {"name": "item_a", "type": "binary"}, {"name": "item_b", "type": "binary"}, {"name": "item_c", "type": "binary"}, {"name": "item_d", "type": "binary"} ], "objective": { "direction": "maximize", "linear_terms": [ {"variable": "item_a", "coefficient": 10}, {"variable": "item_b", "coefficient": 8}, {"variable": "item_c", "coefficient": 7}, {"variable": "item_d", "coefficient": 6} ] }, "constraints": [ { "id": "capacity", "type": "hard", "terms": [ {"variable": "item_a", "coefficient": 6}, {"variable": "item_b", "coefficient": 5}, {"variable": "item_c", "coefficient": 4}, {"variable": "item_d", "coefficient": 3} ], "operator": "<=", "rhs": 10 } ], "solver": {"backend": "exact"} }

Integer variables ("type": "integer" with bounds, "version": "1.1"), cardinality constraints — exactly, at most or at least *k* of a set of binary variables, a hard at-most-one compiling without slack variables ("cardinality_constraints", "version": "1.2") — templates that write a large, regular model once over index sets and let the server expand it ("index_sets", "parameters", "variable_families" and the *_templates lists, "version": "1.3"), quadratic objective terms, soft constraints with weights and per-backend solver preferences are described in docs/problem-format.md. annealbridge export-schema prints the JSON Schema an agent can use for structured output.

Seven ready-to-run examples live in the repository — knapsack, assignment, TSP, integer knapsack, shift scheduling, exam timetabling (cardinality constraints) and TSP with templates (the TSP written once over index sets; annealbridge expand prints what it expands to). The installed package carries the same files: annealbridge example lists them and annealbridge example knapsack > knapsack.json saves one (or pipe it straight in with annealbridge example knapsack | annealbridge solve -); the MCP server serves the same seven documents as the resources under annealbridge://examples/.

How it works

The agent produces an OptimizationProblem: binary or bounded-integer variables, a linear or quadratic objective, and hard or soft linear and cardinality constraints. Nothing else. AnnealBridge then, deterministically:

  1. validates the problem and collects every error in one pass, after expanding any templates into explicit entries;
  2. compiles it into a BQM or a CQM, computing penalties, slack and integer encodings itself;
  3. solves it on a local or remote backend;
  4. re-validates every candidate against the *original* JSON, never trusting solver energy;
  5. ranks the feasible solutions and returns the top *K* with per-constraint evaluations.

An opt-in `solver.postp

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

ถาม PopNx