EPK Properties Public Knowledge MCP
A public, read-only MCP server operated by EPK Properties that exposes published real-estate listings for Panama and multilingual educational guides covering buying, taxation, residency, and relocation. It provides no access to private client data, administrative functions, or write actions.
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.
https://mcp.epkproperties.com/mcpWhat its tools do
6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
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 epkproperties.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Retrieve current real-estate property listings for Panama
- Access multilingual guides on buying and taxation
- Learn about residency and relocation procedures
- View geographic area directories for investment
Source and maintenance
Protocol and capabilities
- Server
- epk-properties-public 2.2.8
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 6 advertised
- Resources
- 2 advertised
- Resource templates
- 0 advertised
- Prompts
- 2 advertised
{
"tools": {
"listChanged": true
},
"logging": {},
"prompts": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
search — Search EPK public knowledge
Use this for EPK public knowledge searches and always when one request combines property listings with guides, regulations, taxes, residency, relocation, or due diligence. It returns both result types in one response and remains compatible with company knowledge and deep research.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Natural-language search query."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"url"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}fetch — Fetch EPK public document
Use this when the user wants the full public property or guide document identified by a stable public EPK document ID or a prior search result.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Stable public EPK document ID supplied by the user or returned by search."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"title",
"url",
"text"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_properties — Search public properties
Use this when the user wants only public EPK Properties listings with explicit country, sale/rent, property type, price, bedroom, bathroom, area, location, or descriptive-keyword filters. SALE and RENT searches also include SALE_AND_RENT listings because they are available for the requested operation. If the same request also asks for guides or regulations, use search instead so both kinds appear together.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Location, property name, address, or keywords matched against public listing text."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0
},
"country": {
"enum": [
"PTY",
"DOM"
],
"type": "string",
"description": "PTY for Panama or DOM for the Dominican Republic."
},
"language": {
"enum": [
"es",
"en",
"it"
],
"type": "string",
"default": "es",
"description": "Language for descriptions and canonical listing URLs."
},
"max_area": {
"type": "number",
"minimum": 0,
"description": "Maximum area in square metres."
},
"min_area": {
"type": "number",
"minimum": 0,
"description": "Minimum area in square metres."
},
"max_price": {
"type": "number",
"minimum": 0
},
"min_price": {
"type": "number",
"minimum": 0
},
"max_bedrooms": {
"type": "integer",
"minimum": 0,
"description": "Maximum bedrooms; set equal to min_bedrooms for an exact bedroom count."
},
"min_bedrooms": {
"type": "integer",
"minimum": 0,
"description": "Minimum number of bedrooms."
},
"max_bathrooms": {
"type": "integer",
"minimum": 0,
"description": "Maximum bathrooms; set equal to min_bathrooms for an exact bathroom count."
},
"min_bathrooms": {
"type": "integer",
"minimum": 0,
"description": "Minimum number of bathrooms."
},
"property_type": {
"enum": [
"APARTMENT",
"HOUSE",
"VILLA",
"LAND",
"OFFICE",
"COMMERCIAL_LOCAL"
],
"type": "string"
},
"operation_type": {
"enum": [
"SALE",
"RENT"
],
"type": "string",
"description": "Search by availability: SALE includes SALE and SALE_AND_RENT listings; RENT includes RENT and SALE_AND_RENT listings."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"results",
"total",
"limit",
"offset",
"has_more"
],
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0
},
"total": {
"type": "integer",
"minimum": 0
},
"offset": {
"type": "integer",
"minimum": 0
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"url",
"property_id",
"summary",
"image_url",
"country",
"language",
"location",
"operation_type",
"property_type",
"price",
"currency",
"bedrooms",
"bathrooms",
"square_meters",
"updated_at"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"price": {
"type": [
"number",
"null"
]
},
"title": {
"type": "string"
},
"country": {
"enum": [
"PTY",
"DOM"
],
"type": "string"
},
"summary": {
"type": "string"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"currency": {
"type": [
"string",
"null"
]
},
"language": {
"enum": [
"es",
"en",
"it"
],
"type": "string"
},
"location": {
"type": [
"string",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"image_url": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"updated_at": {
"type": [
"string",
"null"
]
},
"property_id": {
"type": "string",
"format": "uuid"
},
"property_type": {
"type": [
"string",
"null"
]
},
"square_meters": {
"type": [
"number",
"null"
]
},
"operation_type": {
"enum": [
"SALE",
"RENT",
"SALE_AND_RENT"
],
"type": "string",
"description": "Published availability; SALE_AND_RENT satisfies either a sale or rent search."
}
},
"additionalProperties": false
}
},
"has_more": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_property — Get public property
Use this when the user supplies a public EPK property UUID or wants full public details for a result returned by search_properties.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"property_id"
],
"properties": {
"language": {
"enum": [
"es",
"en",
"it"
],
"type": "string",
"default": "es"
},
"property_id": {
"type": "string",
"format": "uuid",
"description": "Stable public property UUID supplied by the user or returned by search_properties."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"title",
"url",
"text"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
},
"metadata": {
"type": "object",
"additionalProperties": {}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_guides — Search public real estate guides
Use this when the user asks only for EPK public guidance about buying, taxation, regulations, residency, locations, rental management, relocation, or due diligence in Panama or the Dominican Republic. If the same request also asks for properties, use search instead so both kinds appear together.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Topic, regulation, tax, residency, location, or buying-process query."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0
},
"country": {
"enum": [
"PTY",
"DOM"
],
"type": "string"
},
"language": {
"enum": [
"es",
"en",
"it"
],
"type": "string",
"description": "Omit to infer the language from the query."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"results",
"total",
"limit",
"offset",
"has_more"
],
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0
},
"total": {
"type": "integer",
"minimum": 0
},
"offset": {
"type": "integer",
"minimum": 0
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"url",
"text",
"kind",
"country",
"countryName",
"image_url",
"language",
"section",
"summary",
"sources"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"kind": {
"type": "string",
"const": "guide"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
},
"country": {
"enum": [
"PTY",
"DOM"
],
"type": "string"
},
"section": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
}
},
"summary": {
"type": "string"
},
"language": {
"enum": [
"es",
"en",
"it"
],
"type": "string"
},
"metadata": {
"type": "object",
"additionalProperties": {}
},
"image_url": {
"type": "string",
"format": "uri"
},
"countryName": {
"type": "string"
}
},
"additionalProperties": false
}
},
"has_more": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_guide_section — Get public guide section
Use this when the user supplies a public EPK guide section ID or wants the complete section identified by search_guides.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^guide:(PTY|DOM):(es|en|it):(overview|\\d{2})$",
"description": "Stable public guide section ID supplied by the user or returned by search_guides."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"title",
"url",
"text",
"kind",
"country",
"countryName",
"image_url",
"language",
"section",
"summary",
"sources"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"kind": {
"type": "string",
"const": "guide"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
},
"country": {
"enum": [
"PTY",
"DOM"
],
"type": "string"
},
"section": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
}
},
"summary": {
"type": "string"
},
"language": {
"enum": [
"es",
"en",
"it"
],
"type": "string"
},
"metadata": {
"type": "object",
"additionalProperties": {}
},
"image_url": {
"type": "string",
"format": "uri"
},
"countryName": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
2 advertised
find-property — Find an EPK property
Find public properties that match a buyer or renter brief.
- brief
- No description (required)
research-buying-rules — Research buying rules
Research public EPK guidance for a real estate topic in Panama or the Dominican Republic.
- question
- No description (required)
Resources
2 advertised
epk-property-explorer — EPK Property Explorer
Compact public results with fullscreen property and real-estate guide exploration for Panama and the Dominican Republic.
ui://widget/epk-property-explorer.v8.htmlepk-property-explorer-v7 — EPK Property Explorer (v7 compatibility)
Compact public results with fullscreen property and real-estate guide exploration for Panama and the Dominican Republic.
ui://widget/epk-property-explorer.v7.html90-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.
- 2026-11-06: 1 of 1 checks answered
- 2026-11-07: 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
- 1636 ms
- 95th percentile latency
- 1636 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1636 ms · metadata changed · 6 tool(s), 2 resource(s), 0 resource template(s), 2 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http epk-properties-public-knowledge-mcp https://mcp.epkproperties.com/mcpCodex
codex mcp add epk-properties-public-knowledge-mcp --url https://mcp.epkproperties.com/mcpCursor
{
"mcpServers": {
"epk-properties-public-knowledge-mcp": {
"url": "https://mcp.epkproperties.com/mcp"
}
}
}Cline
{
"mcpServers": {
"epk-properties-public-knowledge-mcp": {
"type": "streamableHttp",
"url": "https://mcp.epkproperties.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"epk-properties-public-knowledge-mcp": {
"type": "http",
"url": "https://mcp.epkproperties.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http epk-properties-public-knowledge-mcp https://mcp.epkproperties.com/mcpClaude Desktop
https://mcp.epkproperties.com/mcpWindsurf
{
"mcpServers": {
"epk-properties-public-knowledge-mcp": {
"serverUrl": "https://mcp.epkproperties.com/mcp"
}
}
}Let your agent find its tools
Find servers like EPK Properties Public Knowledge MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other crm, sales, and marketing servers
Do you run EPK Properties Public Knowledge 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.