Koskamo

Tax Reclaim MCP

An official MCP server by Tax Reclaim that allows AI assistants to estimate withholding-tax refunds, list supported countries, check filing deadlines, and manage saved claims for cross-border dividend and interest tax recovery.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Tax Reclaim MCP logo, by Tax ReclaimVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Tax Reclaim
MCP endpoint (Streamable HTTP)
https://api.taxreclaim.eu/api/mcp
Vendor documentation

What you can do with it

  • Estimate withholding-tax refunds for dividends or interest
  • List supported countries for tax reclaim calculations
  • Check filing deadlines for specific jurisdictions
  • Preview and save tax reclaim claims to user account

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
tax-reclaim 1.0.0
MCP protocol
2025-06-18
Tools
4 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Tax Reclaim is an information tool and does not constitute tax advice. Calculations are provided for informational purposes only. Always verify filings against your own tax authority's published guidance or consult a qualified tax professional before submitting any claim.

Tools

4 advertised

estimate_refund — Estimate a refund
Advertised by the server during the last successful anonymous check.
Advertised read-only

Estimate the reclaimable withholding tax on one dividend or interest payment for a source/residence country pair, with the treaty rate, filing form and deadline. Country codes are ISO alpha-2; payment_date is YYYY-MM-DD.

estimate_refund input schema
{
  "type": "object",
  "title": "RefundArgs",
  "required": [
    "source_country",
    "residence_country",
    "gross_amount",
    "payment_date"
  ],
  "properties": {
    "is_franked": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Franked",
      "default": null
    },
    "entity_type": {
      "enum": [
        "retail",
        "corporate"
      ],
      "type": "string",
      "title": "Entity Type",
      "default": "retail"
    },
    "holding_pct": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 100,
          "minimum": 0
        },
        {
          "type": "null"
        }
      ],
      "title": "Holding Pct",
      "default": null
    },
    "income_type": {
      "enum": [
        "dividend",
        "interest"
      ],
      "type": "string",
      "title": "Income Type",
      "default": "dividend"
    },
    "gross_amount": {
      "type": "number",
      "title": "Gross Amount",
      "minimum": 0
    },
    "payment_date": {
      "type": "string",
      "title": "Payment Date",
      "description": "ISO date YYYY-MM-DD"
    },
    "holding_months": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ],
      "title": "Holding Months",
      "default": null
    },
    "is_arms_length": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Arms Length",
      "default": null
    },
    "source_country": {
      "type": "string",
      "title": "Source Country",
      "maxLength": 2,
      "minLength": 2
    },
    "withheld_amount": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ],
      "title": "Withheld Amount",
      "default": null
    },
    "tax_payment_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Tax Payment Date",
      "default": null,
      "description": "Authoritative withholding-tax payment date when the deadline runs from tax payment"
    },
    "residence_country": {
      "type": "string",
      "title": "Residence Country",
      "maxLength": 2,
      "minLength": 2
    },
    "withheld_rate_pct": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 100,
          "minimum": 0
        },
        {
          "type": "null"
        }
      ],
      "title": "Withheld Rate Pct",
      "default": null
    },
    "is_portfolio_interest": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Portfolio Interest",
      "default": null
    }
  },
  "additionalProperties": false
}
estimate_refund annotations
{
  "title": "Estimate a refund",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_countries — List supported countries
Advertised by the server during the last successful anonymous check.
Advertised read-only

List supported source and residence countries, domestic withholding rates and the payment years that may still be reclaimable.

list_countries input schema
{
  "type": "object",
  "title": "NoArgs",
  "properties": {},
  "additionalProperties": false
}
list_countries annotations
{
  "title": "List supported countries",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_deadline — Get a filing deadline
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the withholding-tax reclaim deadline rule for a source country, optionally for a specific residence (treaty partner) country.

get_deadline input schema
{
  "type": "object",
  "title": "DeadlineArgs",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "title": "Country",
      "maxLength": 2,
      "minLength": 2,
      "description": "ISO alpha-2 source country"
    },
    "treaty_partner": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2,
          "minLength": 2
        },
        {
          "type": "null"
        }
      ],
      "title": "Treaty Partner",
      "default": null,
      "description": "ISO alpha-2 residence country, for treaty exceptions"
    }
  },
  "additionalProperties": false
}
get_deadline annotations
{
  "title": "Get a filing deadline",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
estimate_dividends — Estimate a dividend history
Advertised by the server during the last successful anonymous check.
Advertised read-only

Estimate the reclaimable withholding tax for a whole dividend history in one call: send either a broker export as csv_text with its broker id, or a list of payments (ISIN, payment_date YYYY-MM-DD, gross_amount, currency, optional withheld_amount), max 500. Returns each payment with its source country, treaty rate, reclaimable amount in the residence currency, form and deadline, plus totals per source country. A payment whose source country cannot be resolved is returned as unresolved with no amount; withheld_is_estimated marks a withholding figure estimated from the statutory rate.

estimate_dividends input schema
{
  "type": "object",
  "$defs": {
    "Payment": {
      "type": "object",
      "title": "Payment",
      "required": [
        "isin",
        "payment_date",
        "gross_amount",
        "currency"
      ],
      "properties": {
        "isin": {
          "type": "string",
          "title": "Isin",
          "maxLength": 20,
          "minLength": 1
        },
        "currency": {
          "type": "string",
          "title": "Currency",
          "maxLength": 3,
          "minLength": 3,
          "description": "ISO 4217"
        },
        "asset_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 200
            },
            {
              "type": "null"
            }
          ],
          "title": "Asset Name",
          "default": null
        },
        "income_type": {
          "enum": [
            "dividend",
            "interest"
          ],
          "type": "string",
          "title": "Income Type",
          "default": "dividend"
        },
        "gross_amount": {
          "type": "number",
          "title": "Gross Amount",
          "maximum": 1000000000000,
          "minimum": 0
        },
        "payment_date": {
          "type": "string",
          "title": "Payment Date",
          "format": "date"
        },
        "withheld_amount": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 1000000000000,
              "minimum": 0
            },
            {
              "type": "null"
            }
          ],
          "title": "Withheld Amount",
          "default": null,
          "description": "Tax withheld at source; omit if unknown and it is estimated"
        }
      },
      "additionalProperties": false
    }
  },
  "title": "DividendsArgs",
  "required": [
    "residence_country"
  ],
  "properties": {
    "broker": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Broker",
      "default": null,
      "description": "One of: avanza, bux, degiro, etoro, freetrade, ibkr, ibkr_flex, nordnet, rabobank, revolut, saxo, schwab, swissquote, trade_republic, trading212, xtb, or generic (needs column_map)"
    },
    "csv_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Csv Text",
      "default": null,
      "description": "Broker export as text"
    },
    "payments": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Payment"
          },
          "maxItems": 500,
          "minItems": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Payments",
      "default": null
    },
    "column_map": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Column Map",
      "default": null,
      "description": "generic only: target field -> CSV column (asset_name, payment_date, gross_amount, ...)"
    },
    "residence_country": {
      "type": "string",
      "title": "Residence Country",
      "maxLength": 2,
      "minLength": 2,
      "description": "ISO alpha-2"
    },
    "residence_currency": {
      "type": "string",
      "title": "Residence Currency",
      "default": "EUR",
      "maxLength": 3,
      "minLength": 3,
      "description": "ISO 4217"
    }
  },
  "additionalProperties": false
}
estimate_dividends annotations
{
  "title": "Estimate a dividend history",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
611 ms
95th percentile latency
611 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 611 ms · metadata changed · 4 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http tax-reclaim-mcp https://api.taxreclaim.eu/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add tax-reclaim-mcp --url https://api.taxreclaim.eu/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable tax-reclaim-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "tax-reclaim-mcp": {
      "url": "https://api.taxreclaim.eu/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "tax-reclaim-mcp": {
      "type": "streamableHttp",
      "url": "https://api.taxreclaim.eu/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start tax-reclaim-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "tax-reclaim-mcp": {
      "type": "http",
      "url": "https://api.taxreclaim.eu/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http tax-reclaim-mcp https://api.taxreclaim.eu/api/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "tax-reclaim-mcp": {
      "url": "https://api.taxreclaim.eu/api/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "tax-reclaim-mcp": {
      "serverUrl": "https://api.taxreclaim.eu/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Tax Reclaim MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Tax Reclaim MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing