Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Standup notes from merge request state, with the failed job's error lines.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
STANDUP_PROVIDER, GITHUB_HOST, GITHUB_TOKEN, GITLAB_HOST, GITLAB_TOKENค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://standup.ilkerbalcilar.com/mcpเปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"standup-mr": {
"command": "npx",
"args": [
"-y",
"standup-mr",
"mcp"
],
"env": {
"STANDUP_PROVIDER": "ใส่ค่าของคุณ",
"GITHUB_HOST": "ใส่ค่าของคุณ",
"GITHUB_TOKEN": "ใส่ค่าของคุณ",
"GITLAB_HOST": "ใส่ค่าของคุณ",
"GITLAB_TOKEN": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http standup-mr https://standup.ilkerbalcilar.com/mcpclaude mcp add standup-mr --env STANDUP_PROVIDER='ใส่ค่าของคุณ' --env GITHUB_HOST='ใส่ค่าของคุณ' --env GITHUB_TOKEN='ใส่ค่าของคุณ' --env GITLAB_HOST='ใส่ค่าของคุณ' --env GITLAB_TOKEN='ใส่ค่าของคุณ' -- npx -y standup-mr mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"standup-mr": {
"url": "https://standup.ilkerbalcilar.com/mcp"
}
}
}วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"standup-mr": {
"command": "npx",
"args": [
"-y",
"standup-mr",
"mcp"
],
"env": {
"STANDUP_PROVIDER": "ใส่ค่าของคุณ",
"GITHUB_HOST": "ใส่ค่าของคุณ",
"GITHUB_TOKEN": "ใส่ค่าของคุณ",
"GITLAB_HOST": "ใส่ค่าของคุณ",
"GITLAB_TOKEN": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"standup-mr": {
"type": "http",
"url": "https://standup.ilkerbalcilar.com/mcp"
}
}
}วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"standup-mr": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"standup-mr",
"mcp"
],
"env": {
"STANDUP_PROVIDER": "ใส่ค่าของคุณ",
"GITHUB_HOST": "ใส่ค่าของคุณ",
"GITHUB_TOKEN": "ใส่ค่าของคุณ",
"GITLAB_HOST": "ใส่ค่าของคุณ",
"GITLAB_TOKEN": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://standup.ilkerbalcilar.com/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
STANDUP_PROVIDER envGITHUB_HOST envGITLAB_HOST envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub Jubstaaa ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: GITHUB_TOKEN, GITLAB_TOKEN
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.1.1) เข้า registry 24 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี 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 รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Standup notes from merge request state, not commit logs.
Most standup tools read your local git log. That answers "what did I type", which is not what anyone asks in a standup. This one reads GitLab or GitHub: what is ready to merge, what is blocked, what is waiting on you — and when a pipeline is red, it opens the job log and tells you why.
| commit-log tools | standup-mr | |
|---|---|---|
| Source | local git log | GitLab or GitHub API |
| Merge request state | ✗ | ready / blocked / draft / stale |
| Review queue | ✗ | pending only, approvals filtered out |
| Failed pipeline | ✗ | error lines from the job trace or the Actions job log |
| Self-hosted (GitLab CE/EE, GitHub Enterprise) | varies | first class |
npx standup-mr fetch # JSON, provider auto-detected
npx standup-mr fetch --provider github # GitHub npx standup-mr fetch --provider gitlab # GitLab npx standup-mr fetch --markdown # structured digest npx standup-mr fetch --lang tr # Turkish date labels
npx standup-mr fetch --markdown | npx standup-mr post --google-chat "$URL"
| GitHub | GitLab | |
|---|---|---|
| Flags | --host / --token | --host / --token |
| Env | GITHUB_HOST / GITHUB_TOKEN | GITLAB_HOST / GITLAB_TOKEN |
| CLI session | gh auth config | glab auth config |
GitHub defaults to github.com when no host is given. GitLab has no default — self-hosted is the norm there, so a host must come from a flag, env var, or glab's own config.
The provider itself is picked in this order:
--provider github / --provider gitlab, if passed--host (github.com, gitlab.com, or a hostname containing github/gitlab)STANDUP_PROVIDER, or whichever of the GITHUB_* / GITLAB_* env pairs is setgh / glab is logged inIf none of these resolve — or both do, ambiguously — the command fails with a clear error instead of guessing.
So if you already use gh or glab, there is nothing to configure.
npx standup-mr fetch --markdown | npx standup-mr post --slack "$SLACK_WEBHOOK_URL"
No token, no config file — sign in instead. The hosted server speaks the standard MCP OAuth flow, so any assistant that supports remote MCP servers can use it: add the URL, and a browser page opens where you sign in.
https://standup.ilkerbalcilar.com/mcp
| Assistant | How |
|---|---|
| claude.ai (web, mobile, Desktop) | Settings → Connectors → Add custom connector → paste the URL → Connect |
| Claude Code | claude mcp add --scope user --transport http standup https://standup.ilkerbalcilar.com/mcp, then /mcp to sign in |
| Cursor | The button above, or "standup": { "url": "https://standup.ilkerbalcilar.com/mcp" } in ~/.cursor/mcp.json |
| VS Code (Copilot) | The button above, or "standup": { "type": "http", "url": "https://standup.ilkerbalcilar.com/mcp" } in mcp.json |
| Gemini CLI | gemini extensions install https://github.com/Jubstaaa/standup-mr, then /mcp auth standup |
| Codex CLI | codex mcp add standup --url https://standup.ilkerbalcilar.com/mcp, then codex mcp login standup |
| ChatGPT | With developer mode on: Settings → Apps → Create → paste the URL, OAuth |
claude.ai and Claude Code are tested end to end; the others use the same standard flow. If one of them doesn't sign in, please open an issue.
On the sign-in page you link the accounts the note should read:
Link as many as you like — say, GitHub for side projects and your company's GitLab for work — then ask for "my standup" or "my work standup". With several accounts linked, the assistant asks which one you mean.
Added in an assistant with a mobile app — Claude or ChatGPT — it works from your phone too: ask for your standup on the way to the meeting.
What is stored. Your provider tokens and webhook URL, encrypted with AES-256-GCM, and only to read your merge requests and post your note. The access tokens your assistant holds are stored as hashes. Disconnecting it deletes everything; connections unused for 30 days are deleted. The server is the code in remote/.
When to use the local server instead. A GitLab behind a VPN or on a private network is out of reach of a hosted server. Run the stdio server below on your own machine — the token never leaves it.
CLI — the core. Emits JSON; zero runtime dependencies.
MCP server (mcp/) — three tools for Claude Desktop, Claude Code, Cursor, or any MCP client that runs a local process. See mcp/README.md.
Remote MCP server (remote/) — the same tools over HTTPS with sign-in, for any assistant that supports remote MCP servers, including the web and mobile apps. See above.
Claude Code plugin — the note-writing playbook, shipped as the standup skill. From inside Claude Code:
/plugin marketplace add Jubstaaa/standup-mr
/plugin install standup@standup-mr
Then type /standup. Updates come with /plugin marketplace update standup-mr.
If you're not using Claude Code, wire up the MCP server for live data and paste in the note-writing rules separately.
Cursor — add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project-local):
{
"mcpServers": { "standup": { "command": "npx", "args": ["-y", "standup-mr", "mcp"], "env": { "GITHUB_TOKEN": "ghp_..." } } } }
Codex — add to ~/.codex/config.toml:
[mcp_servers.standup]
command = "npx" args = ["-y", "standup-mr", "mcp"]
[mcp_servers.standup.env] GITHUB_TOKEN = "ghp_..."
The exact config key and file path are version-dependent for both clients — if a snippet above doesn't work, check Cursor's MCP docs or Codex's own config documentation for the current format rather than trusting this file blindly.
The server exposes three tools:
| Tool | What it does |
|---|---|
get_standup_data | Reads the provider and returns the report as JSON. Optional provider, host, lang. |
get_note_instructions | Returns the note-writing rules, so the assistant can write the note the way the skill would. |
post_standup_note | Posts a finished note to a Slack, Discord or Google Chat webhook. |
post_standup_note reads the webhook URL from STANDUP_WEBHOOK_URL and never takes it as an argument — anyone holding that URL can post to the channel, so it belongs with the tokens, not in a transcript. The payload shape is inferred from the URL host; kind is only needed when a proxy hides it.
Three shapes are implemented: slack and google-chat both post {"text"}, discord posts {"content"}.
Slack and Google Chat do not render standard Markdown, so the note is rewritten on the way out: **bold** becomes *bold* and a ## heading becomes a bold line. Inline code, fenced blocks and their contents are left alone. Discord speaks Markdown natively and is sent untouched. Anything else that accepts a Slack-shaped body — Mattermost, Rocket.Chat, an n8n or Zapier endpoint — works today by passing kind: "slack", or --slack URL on the CLI.
Outside MCP, the same rules are available on stdout:
npx standup-mr instructions >> AGENTS.md
--markdown is a digest, not a written note--markdown organizes the raw material into readable sections. It does not group events into themes or diagnose blockers — that is the model's work, and it lives in the MCP client's prompt or in the Claude Code skill.
Anonymised output from a real Monday run — note that Friday and Saturday each get their own section, and that a merge request GitLab has not evaluated is not called ready:
# Monday, 31 August — dev
_Structured digest — not a written note._
acme/ui pushed to — fix(keyboard): scale keys to viewport (4 commits)acme/ui accepted — chorตัดมาแค่ช่วงต้น อ่านต่อใน repo