GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Register, renew, transfer, and manage domains, DNS, VPS, and email with 106 tools. By OSIR.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://be.osir.com/mcp/httpพิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http domain-registrar https://be.osir.com/mcp/httpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"domain-registrar": {
"url": "https://be.osir.com/mcp/http"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"domain-registrar": {
"type": "http",
"url": "https://be.osir.com/mcp/http"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://be.osir.com/mcp/httpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 8 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน
addPrefixToDomainaddPrefixToDomain: Generate domain suggestions by adding prefixes to a base name.
addSshKeyaddSshKey: Store an SSH public key on your account so it can be injected into VPS installs. Idempotent: storing a key you already have returns the existing one instead of creating a duplicate, so it is safe to call before every order. Returns the key id to pass to orderVps or bui
addSuffixToDomainaddSuffixToDomain: Generate domain suggestions by adding suffixes to a base name.
buildVpsInstancebuildVpsInstance: Stage an operating system install (or reinstall) on a VPS instance. DESTRUCTIVE: ERASES ALL DATA on the server, including any deployed application, and cannot be undone. The install is asynchronous; afterwards poll getVpsInstanceDetails until buildState is COMPL
bulkDomainSuggestionsbulkDomainSuggestions: Generate domain suggestions for 1-10 keywords across 1-6 TLDs (hard cap), grouped by originating keyword. Typical flow: call listCategorizedTlds first to pick 3-6 TLDs, then this tool. Per-suggestion availability may be "available", "taken", or "unknown"; c
cancelTransfercancelTransfer: Stage cancellation of a pending domain transfer. DESTRUCTIVE and irreversible once executed. Requires authentication. Returns an actionId; present the summary to the user, then call executeConfirmedAction with the actionId if they approve.
changeVpsPaymentTermchangeVpsPaymentTerm: Stage a change of the payment term (billing cycle) for a VPS instance. Affects what you are billed. Requires authentication. Returns an actionId; present the summary to the user, then call executeConfirmedAction with the actionId if they approve.
checkDeviceLoginStatuscheckDeviceLoginStatus: Poll for device login completion. Call this after loginWithDevice() once you have opened the verification URL and signed in. Required: deviceCode (the device_code returned by loginWithDevice). On success returns a sessionKey; pass it as the sessionKey argu
checkDomainAvailabilitycheckDomainAvailability: Check if a domain name is available for registration, with price. No authentication required; anonymous callers get list pricing, authenticated callers get their account pricing. Required: domain (e.g., 'example.com')
checkHostAvailabilitycheckHostAvailability: Check if a host/glue record name is available for creation. Requires authentication. Returns whether the hostname is free; call before createHost.
checkKeywordAvailabilitycheckKeywordAvailability: Check keyword availability across all supported TLDs and registries with detailed per-domain results. Use checkKeywordAvailabilitySummary instead when you only need counts; it is faster.
checkKeywordAvailabilitySummarycheckKeywordAvailabilitySummary: Check keyword availability across TLDs and registries. Summary statistics only (no per-domain results), faster than checkKeywordAvailability.
countMyVpsInstancescountMyVpsInstances: Get the total count of VPS instances owned by the authenticated user. Requires authentication.
createAccountcreateAccount: Create a new OSIR customer account; step 1 of onboarding, no authentication required. The contact must be the PRINCIPAL's real ICANN registrant contact (the human or business the account is for), never the AI agent itself. Sends a verification email; complete via v
createContactcreateContact: Create a new contact for use with domain registrations. Requires authentication. Returns the created contact including its id for assignment to domains.
createDnsRecordcreateDnsRecord: Create a new DNS record for a domain. Requires authentication. For newly registered domains the zone is initialized automatically if missing. Returns the created record including its id for later updates or deletion.
createHostcreateHost: Create a new host/glue record, e.g. for custom nameservers like 'ns1.example.com'. Requires authentication. Check the name first with checkHostAvailability. Returns the created host record.
createMailboxcreateMailbox: Stage creation of a paid mailbox on a mail-enabled domain. BILLABLE: deducts from account balance; get a quote with getMailboxQuote and confirm the price with the user first. Requires authentication. Returns an actionId: present the summary to the user, then call e
createPaymentSessioncreatePaymentSession: Stage a Stripe checkout session to add funds to the account balance. Requires authentication. Returns an actionId; present the summary to the user, then call executeConfirmedAction with the actionId if they approve. The executed result includes checkoutUrl (
deleteContactdeleteContact: Stage deletion of a contact. DESTRUCTIVE; fails if the contact is assigned to active domains. Requires authentication. Returns an actionId; present the summary to the user, then call executeConfirmedAction with the actionId if they approve.
deleteDnsRecorddeleteDnsRecord: Stage deletion of a DNS record. DESTRUCTIVE and irreversible once executed. Requires authentication. Returns an actionId; present the summary to the user, then call executeConfirmedAction with the actionId if they approve.
deleteHostdeleteHost: Stage deletion of a host/glue record. DESTRUCTIVE and irreversible once executed. Requires authentication. Returns an actionId; present the summary to the user, then call executeConfirmedAction with the actionId if they approve.
deleteMailboxdeleteMailbox: Stage deletion of a mailbox. The mailbox stops working immediately and its data is destroyed after a 14-day grace period. Requires authentication. Returns an actionId: present the summary to the user, then call executeConfirmedAction with the actionId if they appro
deleteSshKeydeleteSshKey: Stage removal of an SSH key from your account. This does not affect servers already built with it, and the key can simply be added again. Requires authentication. Returns an actionId; present the summary to the user, then call executeConfirmedAction with the actionI
deleteVpsInstancedeleteVpsInstance: Stage deletion/cancellation of a VPS instance. DESTRUCTIVE and irreversible. Requires authentication. Returns an actionId: present the summary to the user, then call executeConfirmedAction with the actionId if they approve.
enableMailDomainenableMailDomain: Enable email hosting on a domain you own. Free; mailboxes are what cost money. If the call fails with a DNS conflict (an existing SPF or MX record), ask the user for explicit consent, then re-call with spfMergeConfirmed=true and/or takeoverConfirmed=true. Requir
executeConfirmedActionexecuteConfirmedAction: Execute a previously staged destructive or financial action after user approval. The action expires after 5 minutes and can only be executed once.
fundBalanceWithSharedPaymentTokenfundBalanceWithSharedPaymentToken: Stage adding funds to the balance by charging a Stripe Shared Payment Token the customer granted to OSIR. Use when a purchase (registerDomain, renewDomain, transferDomain, orderVps) failed for insufficient funds: that error tells you the network
generateDomainSuggestionsgenerateDomainSuggestions: Generate domain name suggestions based on keywords. This is the preferred suggestion tool for a single keyword; use it over suggestAlternatives. Returns suggested names with availability.
getAccountBalancegetAccountBalance: Get the current account balance for the authenticated user. Requires authentication.
getAccountSummarygetAccountSummary: Get a comprehensive summary of the user's account: profile, balance, domain count, VPS count, and pending transfers. Requires authentication.
getAuthStatusgetAuthStatus: Check whether the current session is authenticated. Returns authenticated status and token expiry. Optional: sessionKey (from checkDeviceLoginStatus).
getContactgetContact: Get detailed information about a specific contact. Requires authentication. Get the contactId from listContacts. Returns name, email, phone, organization, and address.
getContactsForDomaingetContactsForDomain: Get all contacts (registrant, admin, tech, billing) assigned to a domain. Requires authentication. Returns the contact assigned to each role.
getDedicatedServerCataloggetDedicatedServerCatalog: Get all available dedicated server configurations with pricing and specifications. No authentication required.
getDnsRecordgetDnsRecord: Get details of a specific DNS record by id. Requires authentication. Get the recordId from listDnsRecords. Returns the record's name, type, content, TTL, and priority.
getDomainAuditTrailgetDomainAuditTrail: Get the audit trail (history of all changes) for a specific domain. Requires authentication.
getDomainExtensionsgetDomainExtensions: Get all available domain extensions (TLDs) with pricing information. No authentication required.
getDomainInfogetDomainInfo: Get registry (EPP) state plus account settings for one domain: status, nameservers, lock state, auto-renew, privacy, creation/expiry dates, premium/expired/redemption info. Dates are null while a registration is still pending at the registry; autoRenew is omitted f
getDomainPricinggetDomainPricing: Get pricing for domain extensions from the product catalog. Requires authentication.
getHostingBundlegetHostingBundle: Get the hosting options and exact prices for a specific domain: recommended VPS packages (cheapest first), email plans, web forwarding, and app/site deployment. No authentication required. Call this ONCE after a successful availability check or registration to m
getHostsForDomaingetHostsForDomain: List all host/glue records associated with a domain. Requires authentication. Returns each host name and its IP addresses.
getInvoiceDetailsgetInvoiceDetails: Get detailed information about a specific invoice including line items. Requires authentication.
getInvoiceStatisticsgetInvoiceStatistics: Get summary statistics of invoices: total paid, pending, overdue amounts. Requires authentication.
getMailDnsRecordsgetMailDnsRecords: Get the DNS records a mail domain needs (MX, SPF, DKIM, ...), for customers managing DNS externally. Requires authentication.
getMailboxQuotegetMailboxQuote: Get a display-only price quote for a mailbox plan. The backend re-derives the authoritative price at purchase. Requires authentication.
getMailboxUsagegetMailboxUsage: Get disk usage per mailbox in bytes, for quota display alongside the plan's quotaBytes. Requires authentication.
getMyAuditLogsgetMyAuditLogs: Get recent audit logs for the authenticated user across all services. Requires authentication.
getMyProfilegetMyProfile: Get the authenticated user's profile and account information including name, email, organization, balance, and domain/VPS counts. Requires authentication.
getPaymentTransactionsgetPaymentTransactions: Get payment transaction history for the authenticated user. Requires authentication.
getProductCataloggetProductCatalog: Get the complete product catalog including domain extensions, VPS packages, and dedicated servers. No authentication required.
getRecentActivitygetRecentActivity: Get the most recent activity across all domains and services for the user. Requires authentication.
getTransferQuotegetTransferQuote: Get a transfer price quote for a domain. Requires authentication. Returns transfer price, currency, extension years, and new expiration date. Call before initiateTransfer to show the user the cost.
getTransferStatusgetTransferStatus: Check the current status of a domain transfer. Requires authentication. Returns status, request date, current registrar, and expected completion.
getVpsInstanceDetailsgetVpsInstanceDetails: Get detailed information about a specific VPS instance including resource usage. Requires authentication.
getVpsPackageDetailsgetVpsPackageDetails: Get detailed information about a specific VPS package including all pricing tiers. Requires authentication. For anonymous browsing use listVpsPackages, which already includes per-term pricing.
initializeDnsZoneinitializeDnsZone: Initialize (create) the DNS zone for a domain. NOT needed after registerDomain, which initializes the zone automatically. Use only for pre-existing domains without a zone (e.g. after a transfer, or if registration opted out with initializeDnsZone:false). Safe o
initiateTransferinitiateTransfer: Starts a transfer for a domain already prepared at the losing registrar (unlocked, auth code in hand). transferDomain (domain tools) stages transfer + registrant assignment in one step; use that when the user gives you contact details. Deducts from account balan
listCategorizedTldslistCategorizedTlds: List TLDs from the OSIR catalog that have category and audience metadata, with registration and renewal prices as decimal strings (e.g. '10.39'). Use it to pick 3-6 relevant TLDs before calling bulkDomainSuggestions. Filters: price cap, exclude ccTLDs/restric
listContactslistContacts: List all contacts for the authenticated user, optionally filtered by a search term. Requires authentication. Returns each contact with its id for use in getContact, updateContact, deleteContact, or domain registration.
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน osir.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 815 ms (HTTP 200)
ไม่ต้องล็อกอิน
อ่านคำอธิบายเครื่องมือ 60 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (2.4.2) เข้า registry 25 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
MCP server for terminal commands, file operations, and process management
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
AI integration servers for the OSIR domain registrar. Connect Claude, ChatGPT, or any AI assistant to real domain, DNS, VPS, billing, and account operations — either as individual tools (MCP) or as task-solving specialist agents (A2A).
Two servers, one shared backend client library:
| Server | Port | Protocol | What it gives an AI |
|---|---|---|---|
| MCP Server | 8081 | Model Context Protocol (SSE + Streamable HTTP) | 103 fine-grained tools (checkDomainAvailability, registerDomain, createDnsRecord, createMailbox, osirSitePublish, …) + 11 guided prompts |
| A2A Server | 8082 | Google Agent-to-Agent (JSON-RPC 2.0) | 9 specialist agents with 89 skills and an orchestrator for multi-step workflows |
Use MCP when one assistant should call individual operations. Use A2A when you want to hand a whole task ("set up example.com with DNS and check my balance") to agents that coordinate the work.
MCP (Model Context Protocol) is an open standard that connects AI assistants to external tools and data. An MCP server publishes a set of callable tools; any MCP client — Claude Desktop, Cursor, Copilot, or a custom agent — can discover and invoke them. OSIR implements an MCP server purpose-built for domain and infrastructure management, which is what makes it an AI-native registrar rather than a traditional one with a chat box bolted on.
In Claude, open Settings → Connectors → Add custom connector, then pick one of two setups:
| Option A: No sign-in (recommended) | Option B: OAuth | |
|---|---|---|
| Server URL | https://be.osir.com/mcp/http | https://be.osir.com/mcp/oauth |
| Authentication | No sign-in | Sign in now |
| OAuth client | — | Use your own OAuth client, Client ID mcp-client, secret blank |
| Login | In the chat, one conversation at a time (below) | Browser login when you add the connector; the connector stays signed in |
For Option B, don't pick "Use Claude's published identity" or "Register automatically". OSIR doesn't support either one.
Option A: signing in happens inside the conversation. The first time your assistant needs an authenticated tool, it starts a device login: you get a link to auth.osir.com and a short code, you approve in your browser, and the assistant continues with a session scoped to that conversation. Sessions are deliberately short-lived (they expire after ~30 minutes of inactivity, 8 hours maximum) and end instantly when you say "log me out" — so a connected chat never holds standing access to your domains, servers, and billing.
The same URL works in any MCP client that supports a remote (streamable HTTP) server and can drive the in-chat device login.
Self-hosting note:
/mcp/oauthalways requires OAuth: it returns401with an RFC 9728
challenge. The URL-only
/mcp/httpneedsMCP_OAUTH_CHALLENGE_ENABLED=false. If you leave
that at its default (
true), every MCP path requires OAuth. Session lifetimes
are tunable via
MCP_SESSION_IDLE_MINUTESandMCP_SESSION_MAX_HOURS.
| Capability | Example request |
|---|---|
| Search availability | "Is coolstartup.io available, and what does it cost?" |
| Register a domain | "Register it for two years with WHOIS privacy." |
| Manage DNS | "Point it at 192.0.2.10 and add my email records." |
| Renew and transfer | "Renew everything expiring in the next 30 days." |
| Provision a VPS | "Spin up a 2 vCPU server in Frankfurt running Ubuntu." |
| Host email | "Enable email on example.com and create info@ with a 10 GB mailbox." |
Want to host your own instance or develop against the code? Requires Java 21; Gradle is bundled via the wrapper.
# Run the MCP server (port 8081)
./gradlew :mcp-server:quarkusDev
./gradlew :a2a-server:quarkusDev
Copy .env.example to .env and adjust if you're pointing at your own backend/KeyCloak. Everything defaults to the public OSIR endpoints, so the servers run out of the box.
Add to your client's MCP config (e.g. claude_desktop_config.json):
{
"mcpServers": { "osir": { "url": "http://localhost:8081/mcp/sse" } } }
Restart the client and the OSIR tools appear. Then just ask:
"Is pizzashqip.al available? If not, suggest alternatives."
"List all my domains and show which expire in the next 30 days."
"Add an A record pointing example.al to 203.0.113.10 and a CNAME for www."
Most operations need authentication — ask the assistant to *"log me in to OSIR using the device flow"* and it walks you through browser-based OAuth (KeyCloak, RFC 8628).
# Discover the agents
curl http://localhost:8082/.well-known/agents | jq '.[].name'
curl -X POST http://localhost:8082/a2a \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_TOKEN" \ -d '{ "jsonrpc": "2.0", "id": "1", "method": "tasks/send", "params": { "message": { "role": "user", "parts": [{"type": "text", "text": "Check if example.com is available"}] } } }'
Tasks stream over POST /a2a/stream (SSE), support multi-turn input-required flows, and the orchestrator decomposes complex requests across agents (max 15 steps).
Domains — availability, registration, renewal, transfer, lock/unlock, auto-renew, WHOIS privacy, nameservers, AI-powered name suggestions. DNS — list/create/update/delete records. VPS — browse packages and locations, order, manage, panel login. Billing — balance, invoices, payments, fee previews, domain pricing. Contacts, Transfers, Hosts, Audit logs, Account profile & summary.
Full tool/skill catalog, example conversations, and end-to-end walkthroughs are in [GUIDE.md](docs/GUIDE.md).
106 tools, verified against the live server (tools/list on https://be.osir.com/mcp/http).
executeConfirmedAction.executeConfirmedAction.ตัดมาแค่ช่วงต้น อ่านต่อใน repo