XServer MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@XServer MCP Serverlist all mail accounts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
XServer MCP Server
English | 日本語
Xserver 公式の サーバーパネル REST API (https://api.xserver.ne.jp) を MCP ツールとして公開する Node.js サーバー。
現状の対象 tag は メールアカウント / サーバー情報 / DNSレコード および複合ツール (domain_verification)。
ロードマップ
対応を予定している公式 API タグ (優先順位順・未確定):
WordPress簡単インストール—list/install/update/deleteCron設定—list/create/update/deleteメール振り分け—list/create/deleteFTPアカウント—list/create/update/deleteサブドメイン/ドメイン設定—list/create/delete(破壊的なためconfirmガード必須)MySQL/PHPバージョン/SSL設定など残りのタグ
機能要望は Issue から受け付けます。
⚠ 非公式プロジェクトです 本プロジェクトは XServer / エックスサーバー (エックスサーバー株式会社 / XServer Inc.) が公式に提供・監修・承認するものではありません。XServer 社とは資本・契約関係のない個人有志による非公式 (unofficial) な OSS クライアントです。 "XServer" / "エックスサーバー" は XServer Inc. の商標・サービス名であり、本 README での言及は同社サービスに対応した API クライアントであることを説明する目的 (nominative use) に限られます。XServer Inc. のロゴ・ブランドリソースは使用していません。 本ソフトウェアの利用によって XServer アカウント・ドメイン・サーバー上のデータに生じたいかなる損害についても、著作者は責任を負いません (MIT License 参照)。
XSERVER_API_KEYはユーザー自身が発行・管理するものであり、本プロジェクトが第三者に送信・収集することはありません。
Related MCP server: email-mcp
提供ツール
全ツールは日本語ドメイン (IDN) をそのまま受け付け、MCP 側で Punycode に自動正規化する (src/tools/domain.ts)。書き込み系ツールのレスポンスには実際に送信された resolved_domain / resolved_mail_address が含まれる。DNS レコードの host / content はラベル・任意文字列なので変換しない。
toolset: mail
ツール | メソッド | パス |
| GET |
|
| POST |
|
| GET |
|
| PUT |
|
| DELETE |
|
| GET |
|
| PUT |
|
toolset: server
ツール | メソッド | パス |
| GET |
|
| GET |
|
get_server_info のレスポンスに含まれる domain_validation_token は、新規ドメインの TXT 認証 (_xserver-verify.{domain} に xserver-verify={token}) に利用する。
toolset: dns
ツール | メソッド | パス |
| GET |
|
| POST |
|
| PUT |
|
| DELETE |
|
toolset: domain_verification (複合ツール)
ツール | 概要 |
|
|
| 既存確認 → ensure_domain_verified → |
servername ({sv}) は .env の XSERVER_SERVERNAME で固定され、各ツールの引数には含まれない。
エラー応答形式
全ツールは失敗時に以下の正規化された形式を返す (MCP の isError: true 付き):
{
"error": "XserverValidationError: 入力が不正です",
"code": "VALIDATION_ERROR",
"detail": {
"status": 422,
"body": { "error": { "code": "VALIDATION_ERROR", "message": "...", "errors": [...] } },
"errors": ["mail_address は必須です"],
"retry_after_seconds": 3, // 429 のみ
"rate_limit": { "remaining": 0 } // 429 のみ
}
}code は公式仕様の BAD_REQUEST / UNAUTHORIZED / FORBIDDEN / NOT_FOUND / OPERATION_ERROR / VALIDATION_ERROR / RATE_LIMIT_EXCEEDED / INTERNAL_ERROR / BACKEND_ERROR / API_ERROR のいずれか。domain_verification の高レベルツールはこれに加えて DOMAIN_VERIFICATION_TIMEOUT / ALREADY_EXISTS を返すことがある。
前提条件
Node.js 24 以上 (
package.jsonのengines準拠)Xserver サーバーパネルで発行した API キー
発行手順: Xserver マニュアル「APIキー」 (同内容: サポートサイト版)
インストール
npm 経由 (推奨)
npm パッケージ として公開されています。ほとんどのユーザーはソースをクローンする必要はなく、MCP クライアントの設定で npx から起動できます (Claude Code / Claude Desktop での使用 参照)。
グローバルインストールして CLI として試すこともできます:
npm install -g xserver-mcp-server
XSERVER_API_KEY=xxx XSERVER_SERVERNAME=sv12345.xserver.jp xserver-mcp-serverソースから (開発・デバッグ)
git clone https://github.com/Mink16/xserver-mcp.git
cd xserver-mcp
cp .env.example .env
# .env の XSERVER_API_KEY と XSERVER_SERVERNAME を実値に書き換える
npm ci
npm run build.env は npx や npm install -g 経由で起動した場合は読み込まれない (CWD 依存のため)。MCP クライアントから起動するときは後述のとおり env フィールドで渡す。
環境変数
変数 | 必須 | 既定 | 用途 |
| ✅ | — | Xserver API の Bearer トークン (サーバーパネル → API で発行) |
| ✅ | — | サーバー名 (例: |
|
| API ベース URL (テスト差し替え用) | |
|
| 同時接続上限。プラン別上限 (スタンダード 5 / プレミアム 10 / ビジネス 20) より保守的に設定 | |
|
| 429 の総試行回数。 | |
|
|
| |
| (全有効) | 有効化する toolset をカンマ区切りで指定。 |
Claude Code / Claude Desktop での使用
npm 経由 (推奨)
プロジェクト側の .mcp.json もしくは claude_desktop_config.json に以下を追記:
{
"mcpServers": {
"xserver": {
"command": "npx",
"args": ["-y", "xserver-mcp-server"],
"env": {
"XSERVER_API_KEY": "your-api-key",
"XSERVER_SERVERNAME": "sv12345.xserver.jp"
}
}
}
}env で指定していない他の環境変数 (XSERVER_HTTP_CONCURRENCY など) はすべて任意で、省略時は既定値が使われる。
ソースビルドから
ローカルでクローンしたもの (開発用) を呼ぶ場合:
{
"mcpServers": {
"xserver": {
"command": "node",
"args": ["/絶対パス/to/xserver-mcp/build/index.js"]
}
}
}この構成では .env が CWD 基準で読み込まれるため、env フィールドを書かなくてもよい (ただし MCP クライアントによって CWD の扱いが異なるので env で明示するのが安全)。
別の MCP サーバーから子プロセスとして呼ぶ場合も同様に node <path>/build/index.js で起動する。相対パス指定時は呼び出し側の CWD を基準とする。
開発
npm run test:watch # TDD
npm run typecheck # tsc --noEmit
npm run dev # tsx 直接実行 (build 不要)OpenAPI 仕様 (開発者向けリファレンス)
Xserver 公式 API の OpenAPI 仕様 (docs/xserver-openapi.json) は著作権の都合上リポジトリに含めていない (.gitignore 済)。開発時に参照したい場合は 公式ドキュメント から取得して docs/xserver-openapi.json として配置する。ビルド・テストには不要。
MCP Inspector で動作確認
npm run build
npx @modelcontextprotocol/inspector node build/index.jsブラウザが開くので Tools タブから各ツールを実行できる。
テスト
Vitest。
npm testで全テスト、npm run test:coverageでカバレッジ。global.fetchをtests/helpers/mockFetch.tsでモックし、HTTP 呼び出しの URL / method / body / ヘッダ を検証。各ツールにつき 正常系 + 入力スキーマ検証 + API エラーを網羅。
コントリビュート
TDD (RED → GREEN → REFACTOR) サイクルを厳守する。手順・エージェントの使い分け・完了ゲートは .claude/rules/tdd-workflow.md を参照。PR 前のチェックリストは .claude/rules/pull-requests.md。
CLAUDE.md と .claude/ 配下 (rules/ / agents/ / skills/) は Claude Code などの LLM エージェントがこのリポジトリのコンテキストとして読み込むためのファイルで、人間の読み物としても本リポジトリの設計判断・運用ポリシーを知るのに役立つ。
バージョニング方針
変更履歴は CHANGELOG.md に Keep a Changelog 形式で記録します。
本プロジェクトは将来的に Semantic Versioning に準拠しますが、0.x の期間中は互換性を保証しません。minor バージョン間でも破壊的変更 (ツール名・入出力スキーマ・エラー code の変更等) が入る可能性があります。安定化後に 1.0.0 をリリースします。
行動規範
本プロジェクトの Issue / PR / Discussion での振る舞いは Contributor Covenant v2.1 に従います。
セキュリティ脆弱性は公開 Issue ではなく SECURITY.md の手順で非公開報告してください。
ライセンス
Available Tools
15 toolscreate_dns_recordCreate DNS recordA
DNS レコード (A / AAAA / CNAME / MX / TXT / SRV / CAA) を新規追加する。レスポンスの resolved_domain は XServer に送信した ASCII 形式のドメイン。
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | 対象ドメイン。日本語ドメイン (IDN) も指定可 — 内部で ASCII (Punycode) に自動正規化される。 | |
| host | Yes | ホスト名。`@` で apex を表す | |
| type | Yes | レコードタイプ | |
| content | Yes | レコードの値 | |
| ttl | No | TTL 秒数 (60-86400、省略時は XServer 側の既定値 3600) | |
| priority | No | MX/SRV レコードの優先度 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint=false, idempotentHint=false, openWorldHint=true. The description adds value by noting that the response includes a 'resolved_domain' in ASCII format, which is beyond the schema. However, it does not detail other behavioral aspects like validation or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the primary purpose and supported types, and includes a specific response detail. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, 4 required, no output schema), the description is adequate but could mention potential conflicts (e.g., duplicate records) or propagation behavior. The presence of sibling tools partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The tool description does not add new semantic information about parameters beyond listing types. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool creates a new DNS record and lists the supported record types (A/AAAA/CNAME/MX/TXT/SRV/CAA). It distinguishes from sibling tools like delete_dns_record and update_dns_record by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding a new DNS record but does not explicitly state when to use it versus alternatives (e.g., update_dns_record for modifications, delete_dns_record for removal). No when-not or exclusion guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_mail_accountCreate mail accountA
新規メールアカウントを作成する。作成時にドメイン所有権の確認 (TXT レコード検証) が自動で実施される。レスポンスの resolved_mail_address / resolved_domain は XServer に送信した ASCII 形式。
| Name | Required | Description | Default |
|---|---|---|---|
| mail_address | Yes | 作成するメールアドレス。日本語ドメインを含む形 (例: `info@日本.jp`) も指定可 — 内部で ASCII に自動正規化される。 | |
| password | Yes | メールアカウントのパスワード (6 文字以上) | |
| quota_mb | No | メールボックス容量 (MB。1-50000) | |
| memo | No | 任意のメモ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (non-destructive, non-idempotent, open-world) are supplemented with useful behavioral details: automatic domain ownership verification via TXT record and the ASCII format of resolved addresses in the response. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences that cover purpose and key behavioral context without any redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (4 parameters, no output schema), the description covers essential behavioral context (automatic verification and response format). However, it omits details about the full response structure or potential errors, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having adequate descriptions (e.g., mail_address normalization). The tool description adds no additional parameter semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new mail account, specifying the verb and resource. However, it does not explicitly differentiate from the sibling 'create_mail_account_with_verification', which may cause confusion since both seem to involve verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like 'create_mail_account_with_verification', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_mail_account_with_verificationCreate mail account with domain verificationA
メールアカウントの作成に必要な TXT 認証と DNS 伝播待ちを内包した高レベルツール。既存確認 → ensure_domain_verified → POST /mail (最大 verification_wait_ms ぶんリトライ) を自動実行する。日本語ドメインの入力も受け付ける (内部で ASCII に正規化)。
| Name | Required | Description | Default |
|---|---|---|---|
| mail_address | Yes | 作成するメールアドレス (`local@domain` 形式)。日本語ドメインを含む形 (例: `user@日本.jp`) も指定可 — 内部で ASCII に正規化される。 | |
| password | Yes | メールアカウントのパスワード (6 文字以上) | |
| quota_mb | No | メールボックス容量 MB (1-50000) | |
| memo | No | 任意のメモ | |
| verification_wait_ms | No | ドメイン認証後の DNS 伝播待ち合計上限 (ms)。既定 90000、最大 300000 | |
| poll_interval_ms | No | POST /mail 失敗時のリトライ間隔 (ms)。既定 30000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide openWorldHint: true and destructiveHint: false. The description adds significant behavioral detail: it includes TXT authentication, DNS propagation wait, retries up to verification_wait_ms, and normalization of Japanese domains to ASCII. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. The description is front-loaded with the core purpose and efficiently covers the automation flow and domain normalization.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the internal flow well, but does not mention what the tool returns (e.g., success confirmation, account ID). Since there is no output schema, the description should provide some output expectations. Missing this information reduces completeness for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context for verification_wait_ms (total wait limit) and poll_interval_ms (retry interval), but does not explain other parameters beyond what the schema already provides. Does not improve understanding significantly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: a high-level tool that automates domain verification and DNS propagation wait before creating a mail account. It uses specific verbs (内包, 自動実行) and distinguishes itself from siblings like create_mail_account and ensure_domain_verified by being the composite flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by explaining the automated steps (existing check, ensure_domain_verified, POST /mail with retries). It contrasts with simpler tools like create_mail_account, but does not explicitly state when to use this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dns_recordDelete DNS recordADestructiveIdempotent
DNS レコードを削除する。元に戻せないため、confirm=true を必須とする。
| Name | Required | Description | Default |
|---|---|---|---|
| dns_id | Yes | 削除する DNS レコードの ID | |
| confirm | Yes | 破壊的操作への明示的な同意。必ず true を指定する。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the destructiveHint annotation by explicitly stating the operation cannot be undone and mandating confirm=true. This provides useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with verb+resource, and every word earns its place. Zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool with two required parameters, the description is complete. It covers purpose and critical constraint, though could optionally state that the record is permanently removed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reiterates the confirm requirement but adds no new meaning beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('delete') and resource ('DNS record'), distinguishing it from sibling tools like create_dns_record and update_dns_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that the action is irreversible and requires confirm=true, providing clear context for when to use. However, it does not explicitly exclude alternative tools or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_mail_accountDelete mail accountADestructiveIdempotent
メールアカウントを削除する。元に戻せないため、confirm=true を必須とする。
| Name | Required | Description | Default |
|---|---|---|---|
| mail_address | Yes | 削除するメールアドレス。日本語ドメインを含む形も指定可 (内部で ASCII 正規化)。 | |
| confirm | Yes | 破壊的操作への明示的な同意。必ず true を指定する。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds value by stating the operation is irreversible and that confirm=true is required, which goes beyond the annotation. It does not contradict the idempotentHint or openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading the action and key constraint (irreversibility, confirm=true). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool with annotations present, the description covers the essential behavior and safety requirement. It does not describe return values (no output schema) or side effects, but the openWorldHint suggests possible extras. Adequate for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions for both parameters (mail_address with normalization hint, confirm as explicit consent) already cover 100%. The tool description echoes the confirm requirement but adds no new parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (delete) and resource (mail account). It also mentions irreversibility and the confirmation requirement, making it distinct from sibling tools like create_mail_account or update_mail_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description emphasizes that the operation cannot be undone and requires explicit confirmation (confirm=true). This provides clear usage context, though it does not explicitly compare with alternatives (there is only one delete mail tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensure_domain_verifiedEnsure domain TXT verificationAIdempotent
_xserver-verify.{domain} の TXT レコードを現在の domain_validation_token と一致する状態に揃える。既に一致するレコードがあれば何もしない。DNS 伝播は待たない。レスポンスの resolved_domain は XServer に送信した ASCII 形式のドメイン。
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | 対象ドメイン。日本語ドメイン (IDN) も指定可 — 内部で ASCII (Punycode) に自動正規化される。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (idempotentHint=true, openWorldHint=true), the description adds that it does nothing if the record already matches, does not wait for DNS propagation, and the response field 'resolved_domain' is the ASCII form. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the core action ('align TXT record') and efficiently conveys conditions and side effects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description adequately covers what it does, idempotent behavior, and a notable aspect (no wait for propagation). It is complete for effective usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'domain' has a schema description covering 100% (Japanese domain support, automatic Punycode normalization). The tool description does not add further parameter details, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: aligning the TXT record '_xserver-verify.{domain}' with the current domain validation token. It specifies the exact resource and action, and distinguishes from sibling tools like 'create_dns_record' which would generically create DNS records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for domain verification but does not explicitly state when to use this tool versus alternatives (e.g., 'create_dns_record', 'update_dns_record'). It lacks guidance on prerequisites or exclusion scenarios, though the idempotent hint and open world hint provide some context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mail_accountGet mail account detailsARead-onlyIdempotent
指定したメールアカウントの詳細情報 (容量・使用量・メモ) を取得する。
| Name | Required | Description | Default |
|---|---|---|---|
| mail_address | Yes | 対象のメールアドレス。日本語ドメインを含む形も指定可 (内部で ASCII 正規化)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds value by specifying the returned fields (capacity, usage, memo) beyond the schema. However, it does not mention error cases or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no redundant words. Every part is meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter, the description covers the purpose and return fields. No output schema exists, but the description compensates. Could mention behavior if account not found, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, and the schema already describes it with ASCII normalization. The description does not add extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (mail account details) and the data retrieved (capacity, usage, memo). It distinguishes from siblings like list_mail_accounts (list all) and update_mail_account (update) by focusing on a single account's details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus alternatives (e.g., list_mail_accounts for listing all accounts). Usage is implied by the tool name, but the description lacks explicit when-not or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mail_forwardingGet mail forwarding settingsARead-onlyIdempotent
指定メールアカウントの転送設定 (転送先・メールボックス保持) を取得する。
| Name | Required | Description | Default |
|---|---|---|---|
| mail_address | Yes | 対象のメールアドレス。日本語ドメインを含む形も指定可 (内部で ASCII 正規化)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, openWorldHint) already indicate safe read behavior. The description adds the specific resource being queried but no additional behavioral traits like rate limits or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler, front-loaded with the verb '取得する' (retrieve), and efficiently captures the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter and detailed annotations, the description is largely complete. It mentions what settings are retrieved, though it could optionally describe the return format more explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description does not add meaning beyond what the schema already provides for the mail_address parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves forwarding settings for a specified mail account, including forwarding destination and mailbox retention. It succinctly distinguishes from sibling tools like update_mail_forwarding and create_mail_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing forwarding settings but does not explicitly compare with alternatives or mention when not to use. Given sibling tools, the purpose is inferred but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_infoGet server infoARead-only
サーバーのスペック・ソフトウェアバージョン・ネームサーバー、およびドメイン所有権確認用の domain_validation_token を取得する。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and openWorld, so safety is clear. The description adds value by listing the exact data returned (specs, version, name servers, domain validation token), providing behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, 20 words in Japanese, with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and annotations cover safety, the description is mostly complete. It lists what is returned, though it does not detail the format or any authentication requirements. Still, it is sufficient for a simple getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema description coverage is 100%, so the description need not explain parameters. According to guidelines, baseline is 4, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'get' and lists specific resources: server specs, software version, name servers, and domain validation token. It clearly distinguishes from sibling tools which focus on DNS or mail operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates use when server info is needed, but it does not explicitly state when not to use it or provide alternatives. For a parameterless getter, this is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_usageGet server usageARead-only
ディスク使用量・ファイル数・各種リソース設定件数(ドメイン数・メール数・MySQL 数など)を取得する。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, indicating safe read operation. The description adds concrete details about the data returned (disk usage, file count, resource counts), which is useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads key information (what is retrieved) and is free of extraneous content. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the types of data returned (disk usage, file count, resource counts). While it could detail the exact fields or format, it is largely complete for a straightforward read-only statistics tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description adds meaning by specifying what data is returned, which is sufficient. Baseline score of 4 for no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool retrieves disk usage, file count, and various resource setting counts (domains, emails, MySQL). This is a specific verb-resource combination that clearly distinguishes it from sibling tools which focus on managing individual DNS or mail records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. However, the description implies it is used for overall server usage statistics, and siblings are for specific resource management, making usage somewhat clear without direct instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dns_recordsList DNS recordsARead-only
サーバーに登録された DNS レコードを一覧取得する。domain を指定するとそのドメインのみに絞り込む。
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | 絞り込み対象のドメイン (省略時は全ドメイン)。日本語ドメイン (IDN) も指定可 — 内部で ASCII (Punycode) に自動正規化される。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, openWorldHint), the description reveals the domain filtering behavior and automatic IDN normalization. This adds useful context about input processing. It does not mention output characteristics, but annotations cover safety and non-determinism.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose, then the parameter condition. No redundant information; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with one optional parameter and annotations covering safety and open world, the description is mostly complete. It specifies what records are listed and how to filter, though it omits details like return format or pagination, which are not critical but could be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter description already explains the domain is optional and for filtering, including IDN normalization. The tool description merely restates this, adding no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists DNS records from the server, and mentions optional domain filtering. The verb 'list' and resource 'DNS records' are specific. While it implicitly differentiates from sibling tools like create/delete/update, it does not explicitly distinguish from them, so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use the optional domain parameter but provides no guidance on when to use this tool versus alternatives (e.g., use this for viewing, not modifying). The usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mail_accountsList mail accountsARead-onlyIdempotent
XServer に登録済みのメールアカウントを一覧取得する。domain を指定するとそのドメインのみに絞り込む。
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | 絞り込み対象のドメイン (省略時は全ドメイン)。日本語ドメイン (IDN) も指定可 — 内部で ASCII (Punycode) に自動正規化される。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds no behavioral information beyond the domain filtering detail. It does not contradict annotations but adds minimal value beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with main action. No unnecessary words or redundancy. Efficiently conveys purpose and key optional behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple list tool with one optional parameter. It covers purpose and filtering. However, it does not mention output format, pagination, or limits, which might be relevant given openWorldHint=true. Missing minor detail that could improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes the domain parameter with IDN normalization details. The description adds a brief summary of filtering functionality but no new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a list of registered mail accounts on XServer, with optional domain filtering. It uses specific verb 'list' and resource 'mail accounts', distinguishing it from siblings like get_mail_account (single) or create/delete/update (mutations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use (list all or filter by domain) but does not explicitly mention alternatives or when not to use it. For example, it could note that for a single account, get_mail_account should be used. Lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dns_recordUpdate DNS recordAIdempotent
DNS レコードを部分更新する。送信した項目のみ上書きされ、省略した項目は現在の設定を維持する。domain を指定した場合はレスポンスに resolved_domain (ASCII 形式) が含まれる。
| Name | Required | Description | Default |
|---|---|---|---|
| dns_id | Yes | 対象 DNS レコードの ID | |
| domain | No | ドメイン。日本語ドメイン (IDN) も指定可 — 内部で ASCII (Punycode) に自動正規化される。 | |
| host | No | ホスト名 | |
| type | No | レコードタイプ | |
| content | No | レコードの値 | |
| ttl | No | TTL 秒数 (60-86400) | |
| priority | No | MX/SRV レコードの優先度 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by explaining the partial update behavior and the special response field 'resolved_domain' when domain is provided. Annotations already indicate non-destructive and idempotent hints, which are consistent. No contradictions found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only three sentences, each conveying important information without redundancy. It is front-loaded with the core action and efficiently adds details about partial update and a specific response behavior. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters and no output schema, the description covers the partial update behavior and a specific output field, but does not mention error cases, response format for other fields, or what happens if no optional fields are provided. Adequate but has gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters well. The description adds only a general note about partial update and resolved_domain, but does not provide additional semantics for individual parameters. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool performs a partial update of a DNS record, specifying that only sent fields are overwritten while omitted fields retain current settings. The title 'Update DNS record' and the sibling tools (create, delete) make its purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool should be used when you want to update only specific fields of a DNS record, as it performs a partial update. However, it does not explicitly state when not to use it or compare it to other tools like create_dns_record. Missing explicit alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_mail_accountUpdate mail accountAIdempotent
メールアカウントの設定を部分更新する。省略したフィールドは現在値を維持する。
| Name | Required | Description | Default |
|---|---|---|---|
| mail_address | Yes | 対象のメールアドレス。日本語ドメインを含む形も指定可 (内部で ASCII 正規化)。 | |
| password | No | 新しいパスワード (省略時は変更しない) | |
| quota_mb | No | メールボックス容量 MB (省略時は変更しない) | |
| memo | No | 新しいメモ (省略時は変更しない) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint and openWorldHint. The description adds behavioral detail that omitted fields are not changed, which is consistent and adds context. No contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences, front-loaded with the core action, and no redundant information. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain return values, which is acceptable for a simple update. It adequately covers the input behavior and is supplemented by rich annotations and sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The tool description's note about preserving omitted fields adds general context, but it doesn't significantly enhance understanding of individual parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'partially update mail account settings' (メールアカウントの設定を部分更新する), clearly defining the verb and resource. It distinguishes itself from sibling tools like create_mail_account and delete_mail_account by emphasizing partial update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that omitted fields preserve current values, guiding an agent to only send changed fields. While it doesn't explicitly mention when not to use this tool, the sibling tool names imply its role for modification rather than creation or deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_mail_forwardingUpdate mail forwarding settingsAIdempotent
指定メールアカウントの転送設定を上書きで更新する。forwarding_addresses に空配列を渡すと全てクリアされる。
| Name | Required | Description | Default |
|---|---|---|---|
| mail_address | Yes | 対象のメールアドレス。日本語ドメインを含む形も指定可 (内部で ASCII 正規化)。 | |
| forwarding_addresses | Yes | 転送先メールアドレスの配列。各要素の domain 部は日本語でも指定可 (内部で ASCII 正規化)。空配列を指定すると転送先をクリアする。 | |
| keep_in_mailbox | No | 転送後もメールボックスに残すかどうか (省略時は変更しない) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint and openWorldHint. The description adds valuable details like the clearing behavior for empty arrays and normalization of Japanese domains. It also notes that keep_in_mailbox is unchanged if omitted. This adds context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with an additional clarifying sentence. It is concise and front-loaded with the main action. However, it could be more structured with explicit usage notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main operation and parameter effects but lacks information about return values, prerequisites (e.g., domain verification), or side effects. For a mutation tool with no output schema, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description slightly adds by repeating the clearing behavior, but this is already in the schema. No new parameter meaning is provided beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (overwrite update) and resource (mail forwarding settings for a specified account), distinguishing it from sibling tools like get_mail_forwarding. It also specifies that passing an empty array clears all forwarding addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is for updating forwarding settings but does not explicitly state when to use it or when not to. No alternatives or exclusions are mentioned, leaving the agent without guidance on selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but create_mail_account and create_mail_account_with_verification overlap in functionality, potentially causing confusion. The latter is a composite tool that includes verification, which may lead to misselection.
Tool names consistently follow a verb_noun pattern using snake_case (e.g., create_dns_record, list_mail_accounts). Even the longer create_mail_account_with_verification maintains this pattern. No mixing of conventions.
15 tools is well within the 3-15 range and appropriately scoped for managing DNS records and mail accounts on XServer. Each tool serves a necessary function without redundancy.
The tool set provides full CRUD operations for both DNS records and mail accounts, plus domain verification, server info, and usage stats. No obvious gaps for the stated domain of DNS and mail management.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides email capabilities, hosted on Alpic platform
An MCP server that provides email capabilities, hosted on Alpic platform
An MCP server that provides email capabilities, hosted on Alpic platform
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server for Openprovider.com that enables domain management actions such as checking availability, registering domains, listing domains, and managing contacts through natural language.10MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for managing email via IMAP/SMTP, supporting multiple accounts and tools for reading, sending, searching, and organizing emails.35MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for domain management, enabling domain availability checks, bulk domain checks, and API connectivity testing through the RealtimeRegister API.191MIT
- AlicenseAqualityDmaintenanceMCP server for managing domains, DNS records, email mailboxes, and billing on the adm.tools hosting platform via API.131MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mink16/xserver-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server