skgeodesy-mcp
v1.0.7
Published
MCP server and Chrome extension for accessing Slovak cadastre (skgeodesy.sk)
Maintainers
Readme
🗺️ Slovak Land Registry MCP
A Model Context Protocol (MCP) server that connects AI assistants (Claude Desktop, VS Code, Cursor, Windsurf, Goose, etc.) with the Slovak Cadastral Portal (Úrad geodézie, kartografie a katastra SR).
This server allows LLMs to fetch structured property information, generate reports, and open cadastral data directly in the user’s browser (Chrome).
✨ Key Features
Retrieve property information
- For C (CKN) and E (EKN) parcels.
- Ownership records, buildings, land use classification, legal encumbrances.
Export parcel data to PDF
- Automatically generate a clean, human-readable summary of property information.
Parse council meeting minutes
- Detect parcel numbers directly from PDF/DOCX minutes.
- Create ready-to-use “property packets” for each request (e.g. land sale, swap, lease).
Open directly in Chrome
- With one command, launch the official cadastral portal or ZBGIS map for the selected parcel.
LLM-friendly interface
- All data provided as structured JSON — no scraping of screenshots.
- Deterministic tools, safe to use in automated workflows.
📋 Requirements
- Node.js 18+
- An MCP-compatible client such as:
- Claude Desktop (recommended)
- VS Code / Cursor / Windsurf / Goose
🚀 Use Case: Municipalities & Transparency
This MCP is designed especially for mayors, councils, and local communities:
- Quickly prepare complete land sale/lease packets for council meetings.
- Ensure transparency by linking every agenda item with actual cadastral data.
- Save time for small municipalities by automating repetitive lookups.
👉 With this MCP, an AI assistant becomes a “cadastral clerk” inside your desktop app, ready to pull land registry data, generate reports, and open maps — all on demand.
Getting started
First, install the Playwright MCP server with your client.
Standard config works in most of the tools:
{
"mcpServers": {
"skgeodesy-mcp": {
"command": "npx",
"args": [
"skgeodesy-mcp@latest --extension"
]
}
}
}Use the Claude Code CLI to add the Playwright MCP server:
claude mcp add playwright npx skgeodesy-mcp@latest --extensionFollow the MCP install guide, use the standard config above.
Create or edit the configuration file ~/.codex/config.toml and add:
[mcp_servers.playwright]
command = "npx"
args = ["skgeodesy-mcp@latest --extension"]For more information, see the Codex MCP documentation.
Click the button to install:
Or install manually:
Go to Cursor Settings -> MCP -> Add new MCP Server. Name to your liking, use command type with the command npx skgeodesy-mcp@latest --extension. You can also verify config or add command like arguments via clicking Edit.
Follow the MCP install guide, use the standard config above.
Click the button to install:
Or install manually:
Go to Program in the right sidebar -> Install -> Edit mcp.json. Use the standard config above.
Follow the MCP Servers documentation. For example in ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"playwright": {
"type": "local",
"command": [
"npx",
"skgeodesy-mcp@latest --extension"
],
"enabled": true
}
}
}
Click the button to install:
Or install manually:
Follow the MCP install guide, use the standard config above. You can also install the Playwright MCP server using the VS Code CLI:
# For VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["skgeodesy-mcp@latest --extension"]}'After installation, the Playwright MCP server will be available for use with your GitHub Copilot agent in VS Code.
Follow Windsurf MCP documentation. Use the standard config above.
Configuration
Playwright MCP server supports following arguments. They can be provided in the JSON configuration above, as a part of the "args" list:
> npx skgeodesy-mcp@latest --help
--allowed-origins <origins> semicolon-separated list of origins to allow the
browser to request. Default is to allow all.
--blocked-origins <origins> semicolon-separated list of origins to block the
browser from requesting. Blocklist is evaluated
before allowlist. If used without the allowlist,
requests not matching the blocklist are still
allowed.
--block-service-workers block service workers
--browser <browser> browser or chrome channel to use, possible
values: chrome, firefox, webkit, msedge.
--caps <caps> comma-separated list of additional capabilities
to enable, possible values: vision, pdf.
--cdp-endpoint <endpoint> CDP endpoint to connect to.
--config <path> path to the configuration file.
--device <device> device to emulate, for example: "iPhone 15"
--executable-path <path> path to the browser executable.
--extension Connect to a running browser instance
(Edge/Chrome only). Requires the "Playwright MCP
Bridge" browser extension to be installed.
--headless run browser in headless mode, headed by default
--host <host> host to bind server to. Default is localhost. Use
0.0.0.0 to bind to all interfaces.
--ignore-https-errors ignore https errors
--isolated keep the browser profile in memory, do not save
it to disk.
--image-responses <mode> whether to send image responses to the client.
Can be "allow" or "omit", Defaults to "allow".
--no-sandbox disable the sandbox for all process types that
are normally sandboxed.
--output-dir <path> path to the directory for output files.
--port <port> port to listen on for SSE transport.
--proxy-bypass <bypass> comma-separated domains to bypass proxy, for
example ".com,chromium.org,.domain.com"
--proxy-server <proxy> specify proxy server, for example
"http://myproxy:3128" or "socks5://myproxy:8080"
--save-session Whether to save the Playwright MCP session into
the output directory.
--save-trace Whether to save the Playwright Trace of the
session into the output directory.
--storage-state <path> path to the storage state file for isolated
sessions.
--user-agent <ua string> specify user agent string
--user-data-dir <path> path to the user data directory. If not
specified, a temporary directory will be created.
--viewport-size <size> specify browser viewport size in pixels, for
example "1280, 720"Persistent profile
All the logged in information will be stored in the persistent profile, you can delete it between sessions if you'd like to clear the offline state.
Persistent profile is located at the following locations and you can override it with the --user-data-dir argument.
# Windows
%USERPROFILE%\AppData\Local\ms-playwright\mcp-{channel}-profile
# macOS
- ~/Library/Caches/ms-playwright/mcp-{channel}-profile
# Linux
- ~/.cache/ms-playwright/mcp-{channel}-profileBrowser Extension
The Playwright MCP Chrome Extension allows you to connect to existing browser tabs and leverage your logged-in sessions and browser state. See extension/README.md for installation and setup instructions.
Configuration file
The Playwright MCP server can be configured using a JSON configuration file. You can specify the configuration file
using the --config command line option:
npx skgeodesy-mcp@latest --config path/to/config.json{
// Browser configuration
browser?: {
// Browser type to use (chromium, firefox, or webkit)
browserName?: 'chromium' | 'firefox' | 'webkit';
// Keep the browser profile in memory, do not save it to disk.
isolated?: boolean;
// Path to user data directory for browser profile persistence
userDataDir?: string;
// Browser launch options (see Playwright docs)
// @see https://playwright.dev/docs/api/class-browsertype#browser-type-launch
launchOptions?: {
channel?: string; // Browser channel (e.g. 'chrome')
headless?: boolean; // Run in headless mode
executablePath?: string; // Path to browser executable
// ... other Playwright launch options
};
// Browser context options
// @see https://playwright.dev/docs/api/class-browser#browser-new-context
contextOptions?: {
viewport?: { width: number, height: number };
// ... other Playwright context options
};
// CDP endpoint for connecting to existing browser
cdpEndpoint?: string;
// Remote Playwright server endpoint
remoteEndpoint?: string;
},
// Server configuration
server?: {
port?: number; // Port to listen on
host?: string; // Host to bind to (default: localhost)
},
// List of additional capabilities
capabilities?: Array<
'tabs' | // Tab management
'install' | // Browser installation
'pdf' | // PDF generation
'vision' | // Coordinate-based interactions
>;
// Directory for output files
outputDir?: string;
// Network configuration
network?: {
// List of origins to allow the browser to request. Default is to allow all. Origins matching both `allowedOrigins` and `blockedOrigins` will be blocked.
allowedOrigins?: string[];
// List of origins to block the browser to request. Origins matching both `allowedOrigins` and `blockedOrigins` will be blocked.
blockedOrigins?: string[];
};
/**
* Whether to send image responses to the client. Can be "allow" or "omit".
* Defaults to "allow".
*/
imageResponses?: 'allow' | 'omit';
}