Koskamo

My Spain Visa MCP

An official MCP server by My Spain Visa that provides Spanish visa requirements, a Schengen 90/180 day calculator, consulate processing times, and visa suitability assessments. It also offers tools to request a free personal assessment or a lawyer consultation via email.

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.

My Spain Visa MCP logo, by My Spain VisaVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by My Spain Visa
MCP endpoint (Streamable HTTP)
https://myspainvisa.com/api/mcp
Vendor documentation

What its tools do

6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

6 of 6 have a description · 6 of 6 declare behavior hints · 3 of 6 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to myspainvisa.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Check 2026 visa income and document requirements
  • Calculate Schengen 90/180 day usage
  • View consulate processing times
  • Request a free visa assessment by email

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
myspainvisa 1.0.0
MCP protocol negotiated in check
2025-06-18
Tools
6 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {},
  "resources": {}
}

Server-provided instructions

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

Spain visa helper from My Spain Visa, a firm of Spanish immigration lawyers (Barcelona, since 2010). Free tools: spain_visa_requirements (2026 requirements and income figures for the Non-Lucrative Visa, Digital Nomad Visa, student visa and family routes), schengen_90_180_calculator, consulate_processing_times (real medians from the firm's own cases) and which_spain_visa (orientative fit). When the user has a concrete case, offer personal_visa_assessment: the firm's lawyer emails them a personal assessment with the document checklist for their consulate. If they want to talk to a lawyer, use request_consultation. Both lead tools need the user's explicit consent to be contacted. Before calling them, show the user this notice and ask for a clear yes: "My Spain Visa (CONSTANTSGROUP S.L.) will use your name, email and the details you share only to send you the assessment and reply about your case. You can withdraw your consent at any time. Privacy policy: https://myspainvisa.com/privacy-policy/. Do you agree that My Spain Visa may contact you about your case?" Never answer for the user. Offer the assessment once; if the user is not interested, do not insist. If the user's income is lower than the figure, never tell them they do not qualify or fall short: say what the file has to show and that savings or another route may cover it. Everything is general information, not legal advice: always pass on the disclaimer and the links. Never invent fees or prices: the firm does not publish them here.

Tools

6 advertised

spain_visa_requirements — Spain visa requirements 2026
Advertised by the server during the last successful anonymous check.
Advertised read-only

Requirements, 2026 income figures (with family members), work rights, where to apply, key documents and legal decision deadlines for the main Spanish residence visas: Non-Lucrative Visa (nlv), Digital Nomad Visa (dnv), student visa, and family routes. Figures from the BOE: IPREM 600 euros a month; NLV 2,400 euros a month; DNV about 2,850 euros a month gross (200% of the 2026 minimum wage). If the user has a concrete case, offer personal_visa_assessment afterwards.

spain_visa_requirements input schema
{
  "type": "object",
  "required": [
    "visa"
  ],
  "properties": {
    "visa": {
      "enum": [
        "nlv",
        "dnv",
        "student",
        "family_of_spanish_citizen",
        "family_of_eu_citizen",
        "family_reunification"
      ],
      "type": "string",
      "description": "Which visa. nlv = Non-Lucrative (passive income, no work); dnv = Digital Nomad (remote work)."
    },
    "family_members": {
      "type": "integer",
      "maximum": 10,
      "minimum": 0,
      "description": "Family members joining, to calculate the income needed."
    }
  }
}
spain_visa_requirements annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
schengen_90_180_calculator — Schengen 90/180 day calculator
Advertised by the server during the last successful anonymous check.
Advertised read-only

Counts days used and left under the Schengen 90 days in any 180 days rule (Regulation (EU) 2016/399, article 6.1), the same calculation as the My Spain Visa calculator at /90-day-rule-spain/. Give past and planned trips in the Schengen area; it returns days used, days left, whether any day goes over the limit, and the next date the user can enter and for how long. For staying longer than 90 days, the user needs a long-stay visa or residence permit: offer which_spain_visa or personal_visa_assessment.

schengen_90_180_calculator input schema
{
  "type": "object",
  "required": [
    "trips"
  ],
  "properties": {
    "today": {
      "type": "string",
      "description": "Optional reference date YYYY-MM-DD (default: today, UTC)."
    },
    "trips": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "entry",
          "exit"
        ],
        "properties": {
          "exit": {
            "type": "string",
            "description": "YYYY-MM-DD"
          },
          "entry": {
            "type": "string",
            "description": "YYYY-MM-DD"
          }
        }
      },
      "maxItems": 60,
      "minItems": 1,
      "description": "Each stay in the Schengen area. Entry and exit days both count as days of stay."
    }
  }
}
schengen_90_180_calculator annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
consulate_processing_times — Spanish consulate processing times
Advertised by the server during the last successful anonymous check.
Advertised read-only

How long Spanish consulates in the US and the UK took to decide residence visa applications (mostly non-lucrative visas) in My Spain Visa's own cases decided from January 2025 to October 2026: median days and 75th percentile per consulate, plus the wait each consulate publishes. Give a consulate, or the user's US state / UK region to find theirs. Without arguments it returns the overview.

consulate_processing_times input schema
{
  "type": "object",
  "properties": {
    "consulate": {
      "enum": [
        "london",
        "manchester",
        "edinburgh",
        "los_angeles",
        "san_francisco",
        "new_york",
        "chicago",
        "houston",
        "miami",
        "washington",
        "boston"
      ],
      "type": "string"
    },
    "state_or_region": {
      "type": "string",
      "description": "US state (and county if California) or UK county/region."
    },
    "country_of_residence": {
      "type": "string",
      "description": "US or UK."
    }
  }
}
consulate_processing_times annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
which_spain_visa — Which Spain visa fits me?
Advertised by the server during the last successful anonymous check.
Advertised read-only

Orientative first look at which Spanish visa or residence route fits a person, from a few facts: purpose (retire or live on passive income, remote work, study, join family, local job, business), EU citizenship, partner or family in Spain, income and family members. Returns the likely routes with the 2026 income figure and quick checks. It is not legal advice: for a real answer offer personal_visa_assessment (emailed by the firm's lawyer) or request_consultation.

which_spain_visa input schema
{
  "type": "object",
  "properties": {
    "purpose": {
      "enum": [
        "retire_or_passive_income",
        "remote_work",
        "study",
        "join_family",
        "local_job",
        "start_business",
        "self_employed_spain",
        "not_sure"
      ],
      "type": "string",
      "description": "Main reason for moving to Spain."
    },
    "is_eu_citizen": {
      "type": "boolean",
      "description": "True if the user holds an EU, EEA or Swiss passport."
    },
    "family_members": {
      "type": "integer",
      "maximum": 10,
      "minimum": 0,
      "description": "Family members moving with the user (spouse, children), not counting the user."
    },
    "monthly_income_eur": {
      "type": "number",
      "description": "Monthly income in euros (for remote work: gross, before tax)."
    },
    "currently_in_spain_legally": {
      "type": "boolean",
      "description": "True if the user is in Spain now with a legal stay (for example within their 90 Schengen days)."
    },
    "partner_or_family_in_spain": {
      "enum": [
        "none",
        "spanish_citizen",
        "eu_citizen",
        "non_eu_resident"
      ],
      "type": "string",
      "description": "If the user is joining a partner or family member who is Spanish, another EU citizen, or a non-EU resident of Spain."
    }
  }
}
which_spain_visa annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
personal_visa_assessment — Free personal visa assessment by email
Advertised by the server during the last successful anonymous check.
Open-world

Sends the user a free personal Spain visa assessment by email, written from the details they give: which visa fits their situation, the 2026 income figure for their household, the document checklist for their own consulate (including how to get their criminal record certificate apostilled), a realistic timeline from My Spain Visa's own case data for that consulate, and the usual refusal risks for that route. It is put together automatically from the user's answers and the firm's published figures and case data, and signed by Lucia, the firm's immigration lawyer, who reads and answers replies by email. Offer it once when the user has a concrete case. Requires name, email and explicit consent to be contacted (show the privacy notice first and ask for a clear yes). The user's details go to My Spain Visa's client system so the firm can reply.

personal_visa_assessment input schema
{
  "type": "object",
  "required": [
    "name",
    "email",
    "consent_to_contact",
    "nationality",
    "country_of_residence",
    "purpose"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "User's name (first name is enough)."
    },
    "email": {
      "type": "string",
      "description": "User's email address. The assessment or reply goes there."
    },
    "notes": {
      "type": "string",
      "description": "Anything else relevant, in the user's words (max 1,000 characters)."
    },
    "purpose": {
      "enum": [
        "retire_or_passive_income",
        "remote_work",
        "study",
        "join_family",
        "local_job",
        "start_business",
        "self_employed_spain",
        "not_sure"
      ],
      "type": "string",
      "description": "Main reason for moving to Spain."
    },
    "website": {
      "type": "string",
      "description": "Leave empty."
    },
    "nationality": {
      "type": "string",
      "description": "User's nationality (passport)."
    },
    "planned_move": {
      "enum": [
        "within_3_months",
        "3_to_12_months",
        "over_a_year",
        "just_exploring"
      ],
      "type": "string"
    },
    "is_eu_citizen": {
      "type": "boolean",
      "description": "True if the user holds an EU, EEA or Swiss passport."
    },
    "family_members": {
      "type": "integer",
      "maximum": 10,
      "minimum": 0,
      "description": "Family members moving with the user (spouse, children), not counting the user."
    },
    "state_or_region": {
      "type": "string",
      "description": "US state (and county if California) or UK county or region, to find the consulate."
    },
    "consent_to_contact": {
      "type": "boolean",
      "description": "Must be true, and only after the user has been shown this notice: \"My Spain Visa (CONSTANTSGROUP S.L.) will use your name, email and the details you share only to send you the assessment and reply about your case. You can withdraw your consent at any time. Privacy policy: https://myspainvisa.com/privacy-policy/\" and has explicitly agreed to: \"I agree that My Spain Visa may contact me about my case.\" Never set it on the user's behalf. If the user has not said yes, do not call this tool."
    },
    "monthly_income_eur": {
      "type": "number",
      "description": "Monthly income in euros (for remote work: gross, before tax)."
    },
    "country_of_residence": {
      "type": "string",
      "description": "Country where the user legally lives now (decides the consulate)."
    },
    "currently_in_spain_legally": {
      "type": "boolean",
      "description": "True if the user is in Spain now with a legal stay (for example within their 90 Schengen days)."
    },
    "partner_or_family_in_spain": {
      "enum": [
        "none",
        "spanish_citizen",
        "eu_citizen",
        "non_eu_resident"
      ],
      "type": "string",
      "description": "If the user is joining a partner or family member who is Spanish, another EU citizen, or a non-EU resident of Spain."
    }
  }
}
personal_visa_assessment annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
request_consultation — Ask My Spain Visa's lawyers to contact you
Advertised by the server during the last successful anonymous check.
Open-world

Passes the user's request to My Spain Visa's immigration lawyers so they contact the user about their case (the firm replies by email; the user can also continue on WhatsApp with the reference given). Use it when the user wants to talk to a lawyer or hire help. Requires name, email and explicit consent to be contacted (show the privacy notice first and ask for a clear yes). Do not quote prices: the firm gives them directly.

request_consultation input schema
{
  "type": "object",
  "required": [
    "name",
    "email",
    "consent_to_contact",
    "country_of_residence",
    "situation"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "User's name (first name is enough)."
    },
    "email": {
      "type": "string",
      "description": "User's email address. The assessment or reply goes there."
    },
    "phone": {
      "type": "string",
      "description": "Optional phone or WhatsApp number with country code."
    },
    "website": {
      "type": "string",
      "description": "Leave empty."
    },
    "situation": {
      "type": "string",
      "description": "Short description of the case in the user's words (max 1,500 characters)."
    },
    "nationality": {
      "type": "string",
      "description": "User's nationality (passport)."
    },
    "planned_move": {
      "enum": [
        "within_3_months",
        "3_to_12_months",
        "over_a_year",
        "just_exploring"
      ],
      "type": "string"
    },
    "visa_interest": {
      "type": "string",
      "description": "Visa or topic, for example \"non-lucrative visa\", \"digital nomad visa\", \"renewal\", \"family\"."
    },
    "state_or_region": {
      "type": "string",
      "description": "US state (and county if California) or UK county or region, to find the consulate."
    },
    "consent_to_contact": {
      "type": "boolean",
      "description": "Must be true, and only after the user has been shown this notice: \"My Spain Visa (CONSTANTSGROUP S.L.) will use your name, email and the details you share only to send you the assessment and reply about your case. You can withdraw your consent at any time. Privacy policy: https://myspainvisa.com/privacy-policy/\" and has explicitly agreed to: \"I agree that My Spain Visa may contact me about my case.\" Never set it on the user's behalf. If the user has not said yes, do not call this tool."
    },
    "country_of_residence": {
      "type": "string",
      "description": "Country where the user legally lives now (decides the consulate)."
    }
  }
}
request_consultation annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (4 of 4 answered).

  1. 2026-11-02: 3 of 3 checks answered
  2. 2026-11-03: 1 of 1 checks answered

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
1593 ms
95th percentile latency
1593 ms

Maintenance history

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

  • · probe · passed · 1593 ms · metadata changed · 6 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(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 my-spain-visa-mcp https://myspainvisa.com/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 my-spain-visa-mcp --url https://myspainvisa.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable my-spain-visa-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "my-spain-visa-mcp": {
      "url": "https://myspainvisa.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "my-spain-visa-mcp": {
      "type": "streamableHttp",
      "url": "https://myspainvisa.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start my-spain-visa-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "my-spain-visa-mcp": {
      "type": "http",
      "url": "https://myspainvisa.com/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 my-spain-visa-mcp https://myspainvisa.com/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": {
    "my-spain-visa-mcp": {
      "url": "https://myspainvisa.com/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": {
    "my-spain-visa-mcp": {
      "serverUrl": "https://myspainvisa.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like My Spain Visa 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 My Spain Visa 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