Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Jira & Confluence for AI agents. Pre-configured connections, compact output.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"a2atlassian": {
"command": "uvx",
"args": [
"a2atlassian"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add a2atlassian -- uvx a2atlassianวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"a2atlassian": {
"command": "uvx",
"args": [
"a2atlassian"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"a2atlassian": {
"type": "stdio",
"command": "uvx",
"args": [
"a2atlassian"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub agentic-eng ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.0) เข้า registry 7 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว 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 รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
🏢 a2atlassian
Agent-to-Atlassian
Give AI agents access to Jira and Confluence. Save credentials once, work from anywhere.
Jira + Confluence · read-only by default · pre-configured connections · compact TSV output
Quick Start · MCP Tools · Security · Comparison · Setup
Agent: "What's the status of PROJ-42? Add a comment with the progress update."
↓ a2atlassian → get issue, add comment, transition to In Progress ↓ Agent: "Done — PROJ-42 updated and moved to In Progress."
Existing Atlassian MCP servers (Rovo, sooperset) require Docker, .env files, and mcp-remote bridges. They dump 72 tools into agent context and have known quirks that silently fail. a2atlassian fixes all of that:
pip install a2atlassian and you're done.mcp.json with --register, agent works immediately--scope limits which projects an agent can see${ATLASSIAN_TOKEN} in configs, expanded only at runtimeScope today: full Jira surface (issues, comments, sprints, boards, worklogs, links, versions, fields, watchers, projects) and Confluence core (pages CRUD, search, metadata-only writes).
# Recommended — installs globally as a CLI tool
uv tool install a2atlassian
pip install a2atlassian
Claude Code (with pre-configured connection):
claude mcp add -s user a2atlassian -- uvx --from a2atlassian a2atlassian-mcp \
--register myproject https://mysite.atlassian.net user@company.com '${ATLASSIAN_TOKEN}'
Claude Code (minimal — agent calls login on demand):
claude mcp add -s user a2atlassian -- uvx --from a2atlassian a2atlassian-mcp
Claude Desktop / Cursor / any MCP client (.mcp.json):
{
"mcpServers": { "a2atlassian": { "command": "uvx", "args": [ "--from", "a2atlassian", "a2atlassian-mcp", "--register", "myproject", "https://mysite.atlassian.net", "user@company.com", "${ATLASSIAN_TOKEN}" ], "env": { "ATLASSIAN_TOKEN": "your-api-token-here" } } } }
Multiple projects:
{
"args": [ "--from", "a2atlassian", "a2atlassian-mcp", "--register", "myproject", "https://mysite.atlassian.net", "user@a.com", "${TOKEN_A}", "--register", "personal", "https://personal.atlassian.net", "user@b.com", "${TOKEN_B}" ] }
Scoped connections (limit agent to specific saved projects):
{
"args": ["--from", "a2atlassian", "a2atlassian-mcp", "--scope", "myproject"] }
--register creates ephemeral in-memory connections (process lifetime, no files written). --scope filters which saved connections are visible. Both limit blast radius.
# Save a connection (validates by calling /myself)
a2atlassian login -c myproject \ --url https://mysite.atlassian.net \ --email user@company.com \ --token "$ATLASSIAN_TOKEN"
opa2atlassian login -c myproject \ --url https://mysite.atlassian.net \ --email user@company.com \ --token "op://Personal/Atlassian/token"
a2atlassian login -c myproject \ --url https://mysite.atlassian.net \ --email user@company.com \ --token "$ATLASSIAN_TOKEN" \ --no-read-only
a2atlassian connections a2atlassian logout -c myproject
Tokens accept three forms: literal value, ${ENV_VAR} reference, or op://vault/item/field (resolved via the 1Password CLI at runtime).
| Tool | Description |
|---|---|
login | Save a connection — validates by calling /myself first |
logout | Remove a saved connection |
list_connections | List connections (no secrets exposed) |
| Tool | Description |
|---|---|
jira_get_issue | Get issue by key — full fields, status, assignee |
jira_search | Search by JQL with pagination — compact TSV output by default |
jira_search_count | Count-only JQL — cheap pre-check for "is this going to be huge?" |
jira_search_fields | Discover custom-field IDs by name |
jira_get_field_options | List allowed values for a select / multi-select field |
jira_get_comments | Get all comments for an issue |
jira_get_worklogs | Get all worklogs for an issue |
jira_get_transitions | Discover available status transitions |
jira_get_link_types | List available issue-link types |
jira_get_watchers | List watchers for an issue |
jira_get_projects | List projects accessible to the connection |
jira_get_project_metadata | Fetch creation metadata (issue types, required fields) |
jira_get_user_profile | Resolve an email/accountId to a full user profile |
jira_get_boards | List agile boards in a project |
jira_get_board_issues | Issues on a board (paginated) |
jira_get_sprints | List sprints on a board |
jira_get_sprint_issues | Issues in a sprint (paginated) |
| Tool | Description |
|---|---|
jira_create_issue | Create a new issue |
jira_update_issue | Update fields on an existing issue |
jira_delete_issue | Delete an issue |
jira_transition_issue | Move issue to a new status |
jira_add_comment | Add comment (wiki markup, API v2) |
jira_edit_comment | Update existing comment |
jira_add_worklog | Log time on an issue |
jira_create_issue_link | Link two issues |
jira_remove_issue_link | Remove an issue link |
jira_set_watchers | Replace the watcher set on an issue |
jira_create_sprint | Create a sprint on a board |
jira_update_sprint | Update sprint state / dates |
jira_add_issues_to_sprint | Move issues into a sprint |
jira_create_version | Create a project version |
| Tool | Description |
|---|---|
confluence_get_page | Fetch a page by id (body storage, version, space) |
confluence_get_page_children | List direct children of a page (paginated) |
confluence_search | CQL search; minimal per-match rows |
| Tool | Description |
|---|---|
confluence_upsert_pages | Batch create-or-update with preserve-on-omit body semantics + per-page status + partial-failure shape |
confluence_set_page_properties | Metadata-only write (page_width, emoji, labels) — physically cannot touch body or title |
All tools accept a format parameter:
| Format | Default for | Description |
|---|---|---|
toon | Lists (search, comments) | TSV with header — shape once, data many. 30-60% fewer tokens than JSON |
json | Single entities (get_issue) | Standard JSON with metadata envelope |
List responses use a compact TSV-style format (header row + tab-separated values) inspired by TOON. This is the same approach a2db uses — column names appear once, then just values. For a 50-issue search result, this typically saves 40-60% of tokens compared to JSON.
TSV example (search results):
# search (23 results, 50ms, truncated: False)
key summary assignee status PROJ-142 Fix auth timeout Alice Smith In Progress PROJ-141 Add search filters Bob Jones To Do
JSON example (single issue):
{
"data": {"key": "PROJ-142", "fields": {"summary": "Fix auth timeout", ...}}, "count": 1, "truncated": false, "time_ms": 85 }
When something fails, a2atlassian tells the agent what to do:
Field 'asignee' does not exist
Did you mean: assignee?
Connection 'myproject' is read-only. Run: a2atlassian login -p myproject --read-only false
Quirks handled automatically:
712020: account IDs) — auto-detected with hint{"key": "PROJ-14"} normalized to "PROJ-14" silentlyEvery connection starts read-only. Write tools check the connection flag before executing:
Connection 'myproject' is read-only.
Re-run 'a2atlassian login -p myproject --read-only false' to enable writes.
The human operator controls write access — not the agent.
Connections saved via login go to ~/.config/a2atlassian/connections/ as TOML files:
0600 (owner read/write only)list_connections shows project name, URL, and mode — never tokens--register keeps credentials in memory only, never written to diskUse --scope to limit which saved connections a specific MCP instance can access:
# Project config — only myproject visible, even if other connections are saved
uvx --from a2atlassian a2atlassian-mcp --scope myproject
Project-level MCP configs (.claude/mcp.json) override global configs — each repo sees only its own connections.
Built-in retry with exponential backoff for Atlassian's rate limits (429) and transient server errors (500). Two retries at 1s and 3s intervals before surfacing the error.
| Feature | a2atlassian | Rovo (official) | sooperset/mcp-atlassian |
|---|---|---|---|
| Setup | pip install | OAuth + Docker | Docker + .env + mcp-remote |
| Tools in context | ~35 (loaded on demand) | ~72 | ~72 |
| Connection management | TOML + --register + --scope | Per-session OAuth | .env file |
| Multi-project | Yes (scoped) | No | One .env per setup |
| Read-only default | Yes (per-connection) | No | No |
| Output format | TSV + JSON | JSON | JSON |
| Error enrichment | Field suggestions, quirk fixes | Generic errors | Generic errors |
| Quirk handling | Auto-fix (assignee, parent) | Documented workarounds | Documented workarounds |
| Rate limiting | Built-in retry | No | No |
| CLI | Yes | No | No |
| License | Apache 2.0 | Proprietary | MIT |
ตัดมาแค่ช่วงต้น อ่านต่อใน repo