Gandi MCP by usefulapi
List domains and expiry dates; read, create and update LiveDNS records in Gandi.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"gandi": {
"url": "https://gandi.usefulapi.io/mcp"
}
}
}远程端点
https://gandi.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(8)
🟢gandi_list_domains(fqdn, tld, nameserver, sharing_id, page, ...)
List the domains owned by the token's user, with status, registry dates, autorenew and nameserver type. Gandi API: GET /v5/domain/domains.
输入模式
{
"type": "object",
"properties": {
"fqdn": {
"description": "Filter by name, with optional patterns such as example.* or *example.com.",
"type": "string"
},
"tld": {
"description": "Filter by extension, for example com.",
"type": "string"
},
"nameserver": {
"description": "Filter by nameserver type.",
"type": "string",
"enum": [
"abc",
"livedns",
"other"
]
},
"sharing_id": {
"description": "Organization id to list under (sharing_id filter).",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (max 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gandi_get_domain(domain)
Get one domain with its status, life-cycle dates (registry_ends_at, renew_begins_at, hold_begins_at), autorenew and nameserver mode. Gandi API: GET /v5/domain/domains/{domain}.
输入模式
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"minLength": 3,
"maxLength": 253,
"description": "Domain name, for example example.com."
}
},
"required": [
"domain"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gandi_list_expiring_domains(days, max_pages)
List domains whose registry end date falls within the next N days (or has passed), soonest first. Reads up to max_pages pages of 100 domains; check complete in the result. Built from GET /v5/domain/domains.
输入模式
{
"type": "object",
"properties": {
"days": {
"description": "Look-ahead window in days (default 60).",
"type": "integer",
"minimum": 1,
"maximum": 365
},
"max_pages": {
"description": "Pages of 100 domains to read (default 5, max 10).",
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gandi_list_livedns_domains(sharing_id, page, per_page)
List the domains whose DNS is hosted in Gandi LiveDNS. Gandi API: GET /v5/livedns/domains.
输入模式
{
"type": "object",
"properties": {
"sharing_id": {
"description": "Organization id to list under (sharing_id filter).",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (max 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gandi_list_zone_records(fqdn)
List all DNS record sets in a LiveDNS zone, with name, type, TTL and values. Gandi API: GET /v5/livedns/domains/{fqdn}/records.
输入模式
{
"type": "object",
"properties": {
"fqdn": {
"type": "string",
"minLength": 3,
"maxLength": 253,
"description": "Domain name, for example example.com."
}
},
"required": [
"fqdn"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gandi_get_zone_record(fqdn, rrset_name, rrset_type)
Get one DNS record set by zone, name and type. Returns 404 when the name and type pair does not exist. Gandi API: GET /v5/livedns/domains/{fqdn}/records/{rrset_name}/{rrset_type}.
输入模式
{
"type": "object",
"properties": {
"fqdn": {
"type": "string",
"minLength": 3,
"maxLength": 253,
"description": "Domain name, for example example.com."
},
"rrset_name": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"description": "Record name relative to the zone. Use '@' for the zone apex, or 'www' for www.<domain>."
},
"rrset_type": {
"type": "string",
"enum": [
"A",
"AAAA",
"ALIAS",
"CAA",
"CDS",
"CNAME",
"DNAME",
"DS",
"HTTPS",
"KEY",
"LOC",
"MX",
"NAPTR",
"NS",
"OPENPGPKEY",
"PTR",
"RP",
"SOA",
"SPF",
"SRV",
"SSHFP",
"SVCB",
"TLSA",
"TXT",
"WKS"
],
"description": "Record type, for example A, AAAA, CNAME, MX or TXT."
}
},
"required": [
"fqdn",
"rrset_name",
"rrset_type"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴gandi_create_zone_record(fqdn, rrset_name, rrset_type, rrset_values, rrset_ttl)
Create a DNS record set in a LiveDNS zone. It changes live DNS for the domain. Fails when the name and type pair already exists; use gandi_update_zone_record to change it. Gandi API: POST /v5/livedns/domains/{fqdn}/records/{rrset_name}/{rrset_type}.
输入模式
{
"type": "object",
"properties": {
"fqdn": {
"type": "string",
"minLength": 3,
"maxLength": 253,
"description": "Domain name, for example example.com."
},
"rrset_name": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"description": "Record name relative to the zone. Use '@' for the zone apex, or 'www' for www.<domain>."
},
"rrset_type": {
"type": "string",
"enum": [
"A",
"AAAA",
"ALIAS",
"CAA",
"CDS",
"CNAME",
"DNAME",
"DS",
"HTTPS",
"KEY",
"LOC",
"MX",
"NAPTR",
"NS",
"OPENPGPKEY",
"PTR",
"RP",
"SOA",
"SPF",
"SRV",
"SSHFP",
"SVCB",
"TLSA",
"TXT",
"WKS"
],
"description": "Record type, for example A, AAAA, CNAME, MX or TXT."
},
"rrset_values": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 4096
},
"description": "All values of the record set. For example ['192.0.2.10'] for an A record."
},
"rrset_ttl": {
"description": "Cache time in seconds (300 to 2592000). Omit to keep the API default.",
"type": "integer",
"minimum": 300,
"maximum": 2592000
}
},
"required": [
"fqdn",
"rrset_name",
"rrset_type",
"rrset_values"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴gandi_update_zone_record(fqdn, rrset_name, rrset_type, rrset_values, rrset_ttl)
Replace all values (and optionally the TTL) of one DNS record set. It changes live DNS for the domain and drops the old values. Safe to repeat with the same input. Gandi API: PUT /v5/livedns/domains/{fqdn}/records/{rrset_name}/{rrset_type}.
输入模式
{
"type": "object",
"properties": {
"fqdn": {
"type": "string",
"minLength": 3,
"maxLength": 253,
"description": "Domain name, for example example.com."
},
"rrset_name": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"description": "Record name relative to the zone. Use '@' for the zone apex, or 'www' for www.<domain>."
},
"rrset_type": {
"type": "string",
"enum": [
"A",
"AAAA",
"ALIAS",
"CAA",
"CDS",
"CNAME",
"DNAME",
"DS",
"HTTPS",
"KEY",
"LOC",
"MX",
"NAPTR",
"NS",
"OPENPGPKEY",
"PTR",
"RP",
"SOA",
"SPF",
"SRV",
"SSHFP",
"SVCB",
"TLSA",
"TXT",
"WKS"
],
"description": "Record type, for example A, AAAA, CNAME, MX or TXT."
},
"rrset_values": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 4096
},
"description": "All values of the record set. For example ['192.0.2.10'] for an A record."
},
"rrset_ttl": {
"description": "Cache time in seconds (300 to 2592000). Omit to keep the API default.",
"type": "integer",
"minimum": 300,
"maximum": 2592000
}
},
"required": [
"fqdn",
"rrset_name",
"rrset_type",
"rrset_values"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据