Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
List, create and move tasks through todo, in progress and done.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
TASK_API_URL, TASK_API_TIMEOUT_MSต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"ultra-e2e-test": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TASK_API_URL",
"-e",
"TASK_API_TIMEOUT_MS",
"ghcr.io/hynix666/ultra-e2e-test-mcp-server:0.1.1"
],
"env": {
"TASK_API_URL": "ใส่ค่าของคุณ",
"TASK_API_TIMEOUT_MS": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add ultra-e2e-test --env TASK_API_URL='ใส่ค่าของคุณ' --env TASK_API_TIMEOUT_MS='ใส่ค่าของคุณ' -- docker run -i --rm -e TASK_API_URL -e TASK_API_TIMEOUT_MS ghcr.io/hynix666/ultra-e2e-test-mcp-server:0.1.1เติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"ultra-e2e-test": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TASK_API_URL",
"-e",
"TASK_API_TIMEOUT_MS",
"ghcr.io/hynix666/ultra-e2e-test-mcp-server:0.1.1"
],
"env": {
"TASK_API_URL": "ใส่ค่าของคุณ",
"TASK_API_TIMEOUT_MS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"ultra-e2e-test": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TASK_API_URL",
"-e",
"TASK_API_TIMEOUT_MS",
"ghcr.io/hynix666/ultra-e2e-test-mcp-server:0.1.1"
],
"env": {
"TASK_API_URL": "ใส่ค่าของคุณ",
"TASK_API_TIMEOUT_MS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
TASK_API_URL envTASK_API_TIMEOUT_MS envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub hynix666 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย
ในหมวดเดียวกันมี Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Agent-Native Google Calendar - manage events, sync, and public booking
ให้ AI สร้างและแก้ไฟล์ Excel ได้เอง ทั้งสูตร กราฟ และ PivotTable โดยไม่ต้องมีโปรแกรม Excel ในเครื่อง
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
An MCP server that gives an AI assistant three tools over the task API: list_tasks, create_task and move_task. It speaks the protocol over stdio, so a client starts it as a subprocess.
It is the same architecture as the services beside it, with the transport changed (ADR-0007): src/domain holds the rules, src/application the use cases behind an outbound port, src/adapters the two things that touch the outside world — the HTTP client that calls the task API, and the MCP layer that publishes the use cases as tools — and src/main.ts wires them. npm run check:boundaries fails the build when a layer reaches past its allowlist.
The rules are repeated here rather than imported from another module (ADR-0004), and they earn their place: an illegal status move is refused here, with the legal moves named, instead of reaching the model as a 409 it usually retries.
npm install
npm start # serves over stdio; the task API must be running
Register it with a client — for Claude Code, claude mcp add tasks -- node /absolute/path/to/services/mcp-server/src/main.ts, or the equivalent entry in another client's configuration:
{
"mcpServers": { "tasks": { "command": "node", "args": ["/absolute/path/to/services/mcp-server/src/main.ts"], "env": { "TASK_API_URL": "http://localhost:8080" } } } }
| Variable | Default | Meaning |
|---|---|---|
TASK_API_URL | http://localhost:8080 | Where the task API is. Must be an absolute http or https URL |
TASK_API_TIMEOUT_MS | 10000 | How long one API call may take before it is abandoned |
A value it cannot use stops the process at startup. A server that starts and then fails every tool call is worse than one that never started: the model keeps trying.
Nothing is ever written to stdout. On a stdio server stdout is the protocol channel, and one stray console.log corrupts the stream. Diagnostics go to stderr.
| Tool | Input | Answers with |
|---|---|---|
list_tasks | — | Every task, its status, and the moves that status allows |
create_task | title | The created task, in todo |
move_task | id, status | The moved task, or which moves are legal from where it is |
A failure the caller can act on — a broken rule, an unreachable API — comes back as a tool result with isError: true and the reason. Only a bug here throws, because a thrown error reaches the model as a protocol error it cannot inspect.
npm run verify # import boundaries, type-check, tests
The tests drive the server through a real MCP client over an in-memory transport pair, so a tool that is registered but unreachable — a bad schema, a handler that throws — fails here rather than in someone's editor.
.github/workflows/mcp-publish.yml publishes the image to GitHub Container Registry and server.json to the MCP Registry, where clients discover servers. It uses no stored token: the image is pushed with the run's GITHUB_TOKEN, and the registry trusts GitHub's OIDC identity for the io.github. / namespace. The image is built for linux/amd64 and linux/arm64, each on a native runner, and published as one tag, so it runs natively on an Apple Silicon Mac. The two builds also stay in the registry as -amd64 and -arm64. In a private repository the arm64 runner uses paid Actions minutes once the free allowance is spent.
It runs after each release that creates a version tag, and on demand with a version. Its first job runs in the GitHub environment mcp-registry, which GitHub creates on first use; a required reviewer or a limit on which refs may publish, set there, holds the whole publish. One-time setup:
v* tag exists (the release feature does this; gh release create works too).MCP_PUBLISH_ENABLED=true, then run the workflow once by hand with that version. This first run is expected to fail at its last step, *Publish server.json to the MCP Registry*, with "is private or requires authentication". The images are pushed by then, but GitHub creates a new container package as private, and the registry only accepts an image anyone can pull.OWNER/ultra-e2e-test-mcp-server, listed under the repository's *Packages*. The registry reads the image's io.modelcontextprotocol.server.name label to confirm you own it, which it cannot do for a private image. Check before going on: curl -s -o /dev/null -w '%{http_code}\n' "https://ghcr.io/token?scope=repository:OWNER/ultra-e2e-test-mcp-server:pull" prints 200 once the package is public, and 401 while it is still private.server.json, and every later release publishes on its own.test/server-json.test.ts keeps the manifest honest in the meantime: the image label must equal the server's name, and every advertised variable must be one src/config.ts reads, with the default it really uses.
docker build --tag mcp-server .
docker run --rm -i --env TASK_API_URL=http://host.docker.internal:8080 mcp-server
-i matters: the protocol is stdin and stdout.