feat: implement MCP server for real estate database search
Add streamable-http MCP server with 4 tools:
- search_similar_listings: vector search via pgvector+HNSW (cosine)
- search_by_metadata: full-text search via FTS (ukrainian config)+GIN
- get_listing_by_id: fetch single listing by ID
- describe_schema: static schema documentation for AI agent

Features:
- asyncpg read-only pool with default_transaction_read_only
- parameterized queries + query safety check (multi-statement block)
- Pydantic models for input validation and JSON serialization
- Ollama nomic-embed-text client with dimension validation
- Error handling: Ollama/DB/validation exceptions wrapped in JSON
- Docker & docker-compose support
- ruff clean + 8 pytest tests passing

Co-Authored-By: Claude <noreply@anthropic.com>
1 parent ca58d55 commit 3966ebd4cf1fc3a604511a7242c2b05dfeffb3a4
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 1 day ago
Showing 16 changed files
View
.env.example 0 → 100644
View
.gitignore 0 → 100644
View
Dockerfile 0 → 100644
View
README.md
View
docker-compose.yml 0 → 100644
View
plan.md 0 → 100644
View
pyproject.toml 0 → 100644
View
src/vmk_data_mcp/__init__.py 0 → 100644
View
src/vmk_data_mcp/config.py 0 → 100644
View
src/vmk_data_mcp/db.py 0 → 100644
View
src/vmk_data_mcp/embedder.py 0 → 100644
View
src/vmk_data_mcp/main.py 0 → 100644
View
src/vmk_data_mcp/models.py 0 → 100644
View
src/vmk_data_mcp/tools.py 0 → 100644
View
tests/__init__.py 0 → 100644
View
tests/test_models.py 0 → 100644