qrz-mcp
This MCP server lets an AI assistant query QRZ.com callsign/DXCC data and read/download QRZ logbook data using persona-managed credentials.
Look up callsigns for name, grid, DXCC, license class, QSL info, and image.
Resolve DXCC entities from a callsign or numeric DXCC code.
Get QRZ logbook statistics: QSO count, DXCC total, and date range.
Fetch QSOs with filters for band, mode, DXCC, callsign, date range, and confirmed status.
Control logbook fetch results with limits, transparent pagination, and newest-first ordering.
Download the full QRZ logbook as ADIF text, optionally filtered by band, mode, or date range.
Retrieve qrz-mcp service version and upstream QRZ API version for fleet alignment.
Use qso-graph-auth personas, built-in rate limiting/caching, and mock mode for testing without credentials.
Click on "Deploy 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., "@qrz-mcplook up callsign KI7MT"
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.
qrz-mcp
MCP server for QRZ.com — callsign lookups, DXCC entity resolution, and logbook queries through any MCP-compatible AI assistant.
Part of the qso-graph project. Uses qso-graph-auth for credential management.
Install
uvx qrz-mcp # run it; nothing to installRelated MCP server: hamqth-mcp
Tools
Tool | API | Auth | Description |
| XML | Session key | Callsign lookup (name, grid, DXCC, license class, QSL info, image) |
| XML | Session key | DXCC entity resolution from callsign or entity code |
| Logbook | API key | Logbook stats (QSO count, DXCC total, date range) |
| Logbook | API key | Query QSOs with filters and transparent pagination |
| Logbook | API key | Download full logbook as ADIF |
| — | None | Service version + upstream QRZ API version (fleet identity attestation) |
Quick Start
1. Set up credentials
qrz-mcp uses qso-graph-auth personas for credential management. QRZ has two separate auth mechanisms, exposed as two providers — set up whichever you need:
Provider | Tools | Credentials |
|
| username + password |
|
| username + API key |
# Install qso-graph-auth if you haven't
uv tool install qso-graph-auth
# Create a persona (--start is required)
qso-graph-auth persona add --name ki7mt --callsign KI7MT --start 2018-01-01
# XML API (qrz_lookup, qrz_dxcc)
qso-graph-auth provider enable ki7mt qrz
qso-graph-auth creds set ki7mt qrz # asks for your username, then your password (hidden)
# Logbook API (qrz_logbook_status, qrz_logbook_fetch, qrz_download)
qso-graph-auth provider enable ki7mt qrz_logbook
qso-graph-auth creds set ki7mt qrz_logbook # asks for your username, then your API key
# Verify
qso-graph-auth creds doctorPass the persona name (ki7mt above) as the persona argument on every tool call.
Omit
--password/--api-keyto be prompted instead — passing secrets as CLI arguments leaves them in your shell history.
XML API (callsign lookup, DXCC) requires a QRZ XML Subscription ($35.95/yr). Free tier returns name and address only.
Logbook API requires an API key from QRZ Settings > API.
2. Configure your MCP client
qrz-mcp works with any MCP-compatible client. Add the server config and restart — tools appear automatically.
Claude Desktop
Add to claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows):
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}Claude Code
Add to .claude/settings.json:
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}ChatGPT Desktop
ChatGPT supports MCP via the OpenAI Agents SDK. Add under Settings > Apps & Connectors, or configure in your agent definition:
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}Cursor
Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}VS Code / GitHub Copilot
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}Gemini CLI
Add to ~/.gemini/settings.json (global) or .gemini/settings.json (project):
{
"mcpServers": {
"qrz": {
"command": "uvx",
"args": ["qrz-mcp"]
}
}
}3. Ask questions
"Look up W1AW on QRZ — what's their grid and license class?"
"What DXCC entity is VP8PJ?"
"How many QSOs do I have in my QRZ logbook?"
"Show me all 20m FT8 QSOs from my QRZ logbook this year"
Rate Limiting
QRZ enforces undocumented rate limits that can trigger 24-hour IP bans. qrz-mcp protects you:
500ms minimum delay between all API calls
Token bucket: 35 requests/minute
60s freeze on authentication failures
3600s freeze on connection refused (IP ban detection)
In-memory response cache (5 min for callsigns, 1 hour for DXCC)
Testing Without Credentials
Set the mock environment variable to test all 6 tools without QRZ credentials:
QRZ_MCP_MOCK=1 qrz-mcpMCP Inspector
qrz-mcp --transport streamable-http --port 8002Then open the MCP Inspector at http://localhost:8002.
Development
git clone https://github.com/qso-graph/qrz-mcp.git
cd qrz-mcp
uv sync --group dev
uv run pytestQRZ Subscription Tiers
Feature | Free | XML Data ($35.95/yr) |
Callsign lookups/day | 100 | Unlimited |
Fields returned | Name + address only | All (grid, lat/lon, DXCC, class, QSL, image) |
Logbook API | No | Yes |
DXCC lookup | No | Yes |
License
GPL-3.0-or-later
Available Tools
6 toolsget_version_infoGet Version InfoARead-onlyIdempotent
Get qrz-mcp service version and upstream QRZ API version.
Returns the running PyPI version of qrz-mcp and the QRZ.com XML + Logbook API contract in use. Use this to confirm fleet alignment across MCP deployments — agents can compare service_version and spec_version across servers to detect drift without going outside the MCP protocol.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as a safe, read-only, idempotent, non-destructive operation. The description adds useful behavioral context by explaining that it returns the running PyPI version and the QRZ XML/Logbook API contract in use, which supports drift detection beyond what annotations provide.
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 front-loaded with the core purpose, followed by return details and then the operational use case. All three sentences earn their place and there is no redundant or filler text.
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 zero-parameter, read-only version tool with rich annotations and an output schema, the description provides everything an agent needs: what version data is returned and why it matters. No additional authentication, pagination, or side-effect details are necessary for this 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?
The tool has zero parameters, so the baseline is 4. The description correctly does not invent parameter semantics, and the empty schema is sufficient for a no-argument version-info call.
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 a specific verb and resource: it gets the qrz-mcp service version and upstream QRZ API version. It also explicitly states the two returned values, service_version and spec_version, making the tool's output distinguishable from all QRZ data lookup siblings.
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?
It gives a clear usage context: confirm fleet alignment across MCP deployments by comparing service_version and spec_version across servers to detect drift. It does not name when not to use the tool or alternatives, but no sibling appears relevant for version comparison, so the guidance is clear without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qrz_downloadQrz DownloadARead-onlyIdempotent
Download your complete QRZ logbook as raw ADIF text.
Returns the .adi file content — save to disk for import into your logger. Transparently paginates to collect all records. Rate-limited to avoid API bans.
| Name | Required | Description | Default |
|---|---|---|---|
| band | No | Filter by band (e.g., '20m'). | |
| mode | No | Filter by mode (e.g., 'FT8'). | |
| persona | Yes | Persona name configured in adif-mcp. | |
| end_date | No | Date range end (YYYY-MM-DD). | |
| start_date | No | Date range start (YYYY-MM-DD). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral facts beyond that: it transparently paginates internally, it is rate-limited to avoid API bans, and the return value is a .adi file body rather than structured records. The one omission is whether filtering narrows the export or whether the whole logbook always comes back.
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?
Three short sentences, front-loaded with what the tool returns, followed by the actionable instruction and then the behavioral caveats. No boilerplate and every sentence carries information the agent needs.
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?
An output schema exists, so return values need not be spelled out, and all five parameters are documented in schema. What remains missing is the sibling differentiation against qrz_logbook_fetch and any note on how filters affect the exported content, which matters for a tool that otherwise implies an unfiltered full dump.
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 band, mode, start_date and end_date each documented inline, so the baseline of 3 applies. The description contributes nothing about the parameters and in fact calls the result a 'complete' logbook, without clarifying how band/mode/date filters interact with that completeness.
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?
States a specific verb and resource: 'Download your complete QRZ logbook as raw ADIF text,' which tells an agent this yields raw file content rather than parsed records. It does not explicitly contrast with the sibling qrz_logbook_fetch, so the agent must infer the difference between a full raw export and a fetch call.
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?
'save to disk for import into your logger' implies the intended downstream use, which nudges toward this tool when a portable file is needed. However, it never names an alternative or states when not to use it, and the presence of qrz_logbook_fetch and qrz_logbook_status in the sibling list makes the choice ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qrz_dxccQrz DxccBRead-onlyIdempotent
Resolve a DXCC entity from a callsign or numeric entity code.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Callsign (e.g., VP8PJ) or DXCC code (e.g., 291). | |
| persona | Yes | Persona name configured in adif-mcp. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered by structured data. The description adds nothing beyond that — no note on failure for unknown callsigns, no indication that resolution may hit the QRZ network, no coverage of the persona requirement.
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 front-loaded sentence with no padding; the resource and both input forms come through immediately.
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?
An output schema exists and both parameters are fully documented, so the minimal description is almost sufficient to invoke the tool. What is missing is positioning relative to qrz_lookup and any failure-mode context, which matters for an agent choosing among five QRZ siblings.
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 schema itself gives the format for both accepted query forms (callsign example VP8PJ, code example 291). The description restates that duality but contributes no additional semantics such as case sensitivity or prefix handling.
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?
States a specific verb ('Resolve') and resource ('DXCC entity') plus the accepted input forms, which clearly distinguishes it from a generic callsign lookup like qrz_lookup. It stops short of explicitly naming that sibling, so an agent must infer the split.
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 purpose implies when to use it (you have a callsign or a numeric DXCC code and need the entity), but there is no explicit when/when-not guidance and no mention of the closest alternative, qrz_lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qrz_logbook_fetchQrz Logbook FetchARead-onlyIdempotent
Query QSOs from a QRZ logbook with optional filters.
Transparently paginates to collect up to limit records. QRZ returns
records oldest first, so by default limit keeps the OLDEST matches. Set
newest_first for the most recent QSOs instead (for example, "my last 10
contacts" is limit=10 with newest_first=true).
| Name | Required | Description | Default |
|---|---|---|---|
| band | No | Filter by band (e.g., '20m'). | |
| dxcc | No | Filter by DXCC entity code. | |
| mode | No | Filter by mode (e.g., 'FT8'). | |
| limit | No | Maximum records to return (default 250). | |
| persona | Yes | Persona name configured in adif-mcp. | |
| callsign | No | Filter by contacted station. | |
| end_date | No | Date range end (YYYY-MM-DD). | |
| start_date | No | Date range start (YYYY-MM-DD). | |
| newest_first | No | Return the newest `limit` matches, newest first. | |
| confirmed_only | No | Only return confirmed QSOs. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/idempotent/non-destructive, the description still adds a non-obvious trait that would otherwise cause silently wrong answers: QRZ returns oldest first, so the default limit keeps the OLDEST matches, and it transparently paginates. It does not mention rate limits or auth requirements, keeping it short of a 5.
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?
Three short sentences, front-loaded with the purpose, then the two behaviors most likely to trip up an agent. Every sentence carries information that changes how the tool is called.
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?
Output shape is covered by the output schema, and the description handles pagination, ordering, and limit semantics for a 10-parameter tool. Filter composition (AND vs OR) and persona resolution failure modes remain undocumented, a minor but real gap.
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, but the description adds meaning beyond the schema: the interaction between limit and newest_first determines WHICH records are kept, not just how many. It adds nothing about how band/mode/dxcc/callsign/date filters combine, so it is not fully additive.
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?
States a specific verb and resource ('Query QSOs from a QRZ logbook') plus the fact that filters are optional, which is enough to distinguish it from qrz_logbook_status and qrz_download. It never names a sibling explicitly, so the differentiation is inferred rather than stated.
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?
Gives a concrete usage scenario ('my last 10 contacts' is limit=10 with newest_first=true), which tells the agent how to satisfy a common intent. It does not say when to prefer qrz_download or qrz_lookup over this tool, so context is clear but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qrz_logbook_statusQrz Logbook StatusARead-onlyIdempotent
Get QRZ logbook statistics (QSO count, DXCC total, date range).
| Name | Required | Description | Default |
|---|---|---|---|
| persona | Yes | Persona name configured in adif-mcp. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety and network behavior are covered by structured data. The description adds only the output shape in prose (a summary of counts and a date range), which the output schema likely covers anyway; no rate-limit, auth, or error behavior is mentioned.
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 front-loaded sentence with the resource first and the returned metrics in parentheses. Zero filler, nothing to trim.
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?
An output schema exists and annotations cover the safety profile, so the description needn't explain return values or side effects. What it plausibly lacks is a pointer to the sibling that returns actual QSO records, but for a one-parameter status call it is close to 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?
With one parameter at 100% schema description coverage, the schema fully documents `persona` as a configured persona name. The description adds nothing about how the persona scopes the queried logbook, so the baseline 3 applies.
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?
Specific verb + resource ("Get QRZ logbook statistics") with an inline enumeration of the metrics returned (QSO count, DXCC total, date range). It is distinguishable in practice from qrz_logbook_fetch, but the description never names that sibling, so the differentiation is inferred rather than stated.
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?
Usage is only implied by the word "statistics" – an agent can guess this is the read-only summary call versus qrz_logbook_fetch for actual records. There is no explicit when-to-use, when-not-to-use, or named alternative among the five sibling tools, so no routing guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qrz_lookupQrz LookupARead-onlyIdempotent
Look up a callsign on QRZ.com (name, grid, DXCC, license class, QSL info, image).
Requires a QRZ XML Subscription ($35.95/yr) for full fields.
| Name | Required | Description | Default |
|---|---|---|---|
| persona | Yes | Persona name configured in adif-mcp. | |
| callsign | Yes | Callsign to look up (e.g., W1AW). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description adds genuine context beyond that: the external service dependency and the subscription gate that can limit returned fields, which an agent needs to interpret thin responses. It doesn't detail rate limits or error behavior, keeping it short of a 5.
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 tight sentences: the action and returned fields come first, the subscription caveat second. The field enumeration slightly duplicates what the output schema already conveys, but it still aids quick scanning.
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?
An output schema exists so return values needn't be explained, annotations cover the safety profile, and both parameters are fully documented in-schema. The description's remaining job — external dependency and subscription caveat — is handled, leaving nothing an agent needs missing.
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 both 'persona' and 'callsign' documented in-schema including an example callsign. The description adds no further parameter meaning, so the 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?
States a specific verb and resource ('Look up a callsign on QRZ.com') and enumerates the returned fields (name, grid, DXCC, license class, QSL info, image), so an agent knows exactly what this returns. It does not explicitly contrast itself with siblings like qrz_dxcc or qrz_logbook_fetch, but the resource is distinct enough to infer separation.
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 gives an important prerequisite — a paid QRZ XML Subscription is required for full fields — which tells the agent when results may be degraded. However, it never says when to prefer this over sibling tools (qrz_dxcc, qrz_logbook_fetch) or what happens without a subscription beyond 'full fields' being unavailable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.5.0- Changed
qrz_logbook_fetch1 field changed- added
Input schema / properties / newest_firstAdded value: +{ + "default": false, + "description": "Return the newest `limit` matches, newest first.", + "type": "boolean" +}
6 tool updates
v0.3.3- First observed
get_version_info - First observed
qrz_download - First observed
qrz_dxcc - First observed
qrz_logbook_fetch - First observed
qrz_logbook_status - First observed
qrz_lookup
TDQS
Scored across 6 tools
The tools mostly target distinct actions: version metadata, callsign lookup, DXCC resolution, logbook status, bulk logbook download, and filtered QSO fetch. The main overlap is between qrz_download and qrz_logbook_fetch, since both retrieve logbook data, though one is a full ADIF export and the other is a filtered query.
Most domain tools use a qrz_ prefix, but get_version_info breaks the pattern with get_. The suffixes also mix verbs and nouns (lookup, dxcc, status, download, fetch), making the convention readable but not fully consistent.
Six tools are well-scoped for a QRZ callsign and logbook service. Each tool covers a distinct capability without obvious redundancy or excessive surface area.
The surface covers version info, callsign lookup, DXCC resolution, logbook stats, bulk download, and filtered QSO retrieval. It is read-only and lacks logbook write operations such as adding or updating QSOs, but core read workflows are well covered.
Maintenance
Related MCP Connectors
MCP server for OnceAsk, the AI-native current-address layer for people and agents.
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
MCP server for AI dialogue using various LLM models via AceDataCloud
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server for eQSL.cc that allows users to download incoming electronic QSL cards, verify specific contacts, and check Authenticity Guaranteed status. It enables natural language interaction with amateur radio logs and confirmation records through any MCP-compatible AI assistant.6795 PyPIGPL 3.0
- AlicenseAqualityAmaintenanceMCP server for HamQTH.com — callsign lookup, DX cluster spots, Reverse Beacon Network, DXCC resolution, and more through any MCP-compatible AI assistant.8586 PyPIGPL 3.0
- AlicenseAqualityAmaintenanceMCP server for Parks on the Air (POTA) providing live activator spots, park details, activator/hunter stats, and scheduled activations through any MCP-compatible AI assistant.11612 PyPI3GPL 3.0
- AlicenseBqualityAmaintenanceMCP server for Summits on the Air (SOTA) — live spots, activation alerts, summit info, and nearby summits through any MCP-compatible AI assistant.5571 PyPI1GPL 3.0