Fix the MCP registry entry and fill in package and docs metadata

This commit is contained in:
Yiorgis Gozadinos 2026-08-18 13:03:26 +03:00
parent bd7946178d
commit d28e2662e5
No known key found for this signature in database
7 changed files with 89 additions and 26 deletions

View file

@ -12,15 +12,18 @@
- Eval judge pinned to `qwen3.8`: `DEFAULT_JUDGE_MODEL` is `ollama:qwen3.8`, and the reference configs use `Inferact/Qwen3.8-27B-NVFP4` with `extra_body.chat_template_kwargs.reasoning_effort: low`. Results in `docs/benchmarks.md` were judged by `Qwen3.6-35B-A3B-NVFP4` and are not re-judged.
- `import_documents` embeds chunks across the whole batch in one pass instead of per document.
### Fixed
- `DocumentRepository.delete_all` recreated `document_items` from `DocumentItemRecord` instead of `get_document_items_arrow_schema()`, returning `picture_data` as `binary` rather than `large_binary`.
- `haiku.rag` and `haiku.rag-slim` summaries and keywords; both packages now publish `[project.urls]`.
- `server.json` declares `title` and `websiteUrl`, and drops the `keywords` and `license` keys, which are not in the server schema.
### Removed
- `wix` evaluation dataset and its reference config `evaluations/configs/wix.yaml`.
### Fixed
- `DocumentRepository.delete_all` recreated `document_items` from `DocumentItemRecord` instead of `get_document_items_arrow_schema()`, returning `picture_data` as `binary` rather than `large_binary`.
- `server.json` runtime arguments are `mcp --stdio`, was `serve --mcp`.
## [0.74.0] - 2026-08-13
### Added

View file

@ -1,3 +1,37 @@
---
title: haiku.rag
description: Local-first agentic RAG. Index PDFs, web pages, and whole directories, then ask questions and get answers cited to page numbers and section headings. Hybrid search, reranking, and multimodal retrieval on embedded LanceDB.
---
haiku.rag indexes PDFs, web pages, and whole directories, retrieves with hybrid search, and answers with citations down to the page number and section heading. It runs on an embedded database with open models, so your documents stay on your machine and there is no server to operate.
```bash
uv pip install haiku.rag
haiku-rag init
haiku-rag add-src ~/Documents/some-paper.pdf
haiku-rag ask "what does it conclude?"
```
[Quickstart](tutorial.md) covers provider setup and the first ingestion.
## Why haiku.rag
**Answers you can check.** Every answer carries citations with page numbers and section headings. Visual grounding shows the cited chunk highlighted on the original page image. Optional capabilities require an answer to declare what grounds it, including declaring that nothing does.
**Local-first, no server.** Embedded [LanceDB](https://lancedb.com/) and open models through [Ollama](https://ollama.com/) by default. No database to run and no API keys required. The same code runs against S3, GCS, Azure, LanceDB Cloud, or any provider Pydantic AI supports.
**Built for agents.** Native [Pydantic AI](https://ai.pydantic.dev/) capabilities compose into your own agents. An [MCP server](mcp.md) exposes the same database to Claude Desktop and other assistants. The analysis capability runs sandboxed Python across documents for questions that need computation rather than retrieval.
**Measured, not asserted.** Retrieval and answer quality are tracked against public benchmarks with runnable configs. See [Benchmarks](benchmarks.md).
## Start here
- [Quickstart](tutorial.md): install, index, chat.
- [Overview](overview.md): what haiku.rag does, end to end.
- [Capabilities](capabilities/index.md): native RAG and analysis capabilities for Pydantic AI agents.
- [Python API](python.md): use haiku.rag from code.
- [MCP server](mcp.md): expose haiku.rag to Claude Desktop or other AI assistants.
- [Configuration](configuration/index.md): every setting.
MIT licensed. Source on [GitHub](https://github.com/ggozad/haiku.rag).

View file

@ -1,13 +1,28 @@
[project]
name = "haiku.rag-slim"
description = "Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling - Minimal dependencies"
description = "Local-first agentic RAG with citations - hybrid search, reranking and multimodal retrieval over your own documents, no database server required - Minimal dependencies"
version = "0.75.0"
authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }]
license = { text = "MIT" }
readme = { file = "README.md", content-type = "text/markdown" }
requires-python = ">=3.12"
keywords = ["RAG", "lancedb", "vector-database", "ml", "mcp"]
keywords = [
"RAG",
"agentic-rag",
"lancedb",
"vector-database",
"hybrid-search",
"reranking",
"multimodal-rag",
"embeddings",
"citations",
"document-ingestion",
"mcp",
"mcp-server",
"pydantic-ai",
"docling",
]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
@ -41,6 +56,13 @@ dependencies = [
"zstandard>=0.23.0; python_version<'3.14'",
]
[project.urls]
Homepage = "https://ggozad.github.io/haiku.rag/"
Documentation = "https://ggozad.github.io/haiku.rag/"
Repository = "https://github.com/ggozad/haiku.rag"
Issues = "https://github.com/ggozad/haiku.rag/issues"
Changelog = "https://ggozad.github.io/haiku.rag/changelog/"
[project.optional-dependencies]
# Document processing
docling = ["docling>=2.102.2,<3.0.0", "opencv-python-headless>=4.6.0.66,<5.0.0.0"]

View file

@ -3,7 +3,7 @@
{% block extrahead %}
<meta property="og:type" content="website">
<meta property="og:title" content="{% if page.title and page.title != config.site_name %}{{ page.title }} {{ config.site_name }}{% else %}{{ config.site_name }}{% endif %}">
<meta property="og:description" content="{{ config.site_description }}">
<meta property="og:description" content="{% if page.meta and page.meta.description %}{{ page.meta.description }}{% else %}{{ config.site_description }}{% endif %}">
<meta property="og:url" content="{{ page.canonical_url }}">
<meta property="og:image" content="{{ config.site_url }}img/chat-qa.png">
<meta name="twitter:card" content="summary_large_image">
@ -17,7 +17,7 @@
<div class="haiku-rag-hero__inner">
<div class="haiku-rag-hero__text">
<h1 class="haiku-rag-hero__title">haiku.rag</h1>
<p class="haiku-rag-hero__tagline">Opinionated agentic RAG powered by <a href="https://lancedb.com/">LanceDB</a>, <a href="https://ai.pydantic.dev/">Pydantic AI</a>, and <a href="https://docling-project.github.io/docling/">Docling</a>. Runs locally, scales to production.</p>
<p class="haiku-rag-hero__tagline">Ask questions about your own documents and get answers that cite their sources. Agentic RAG on <a href="https://lancedb.com/">LanceDB</a>, <a href="https://ai.pydantic.dev/">Pydantic AI</a>, and <a href="https://docling-project.github.io/docling/">Docling</a>. Runs locally, scales to production.</p>
<div class="haiku-rag-hero__actions">
<a class="md-button md-button--primary" href="tutorial/">Get started</a>
<a class="md-button" href="overview/">Learn more</a>

View file

@ -1,7 +1,7 @@
[project]
name = "haiku.rag"
description = "Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling"
description = "Local-first agentic RAG with citations - hybrid search, reranking and multimodal retrieval over your own documents, no database server required"
version = "0.75.0"
authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }]
license = { text = "MIT" }
@ -9,10 +9,17 @@ readme = { file = "README.md", content-type = "text/markdown" }
requires-python = ">=3.12"
keywords = [
"RAG",
"agentic-rag",
"lancedb",
"vector-database",
"ml",
"hybrid-search",
"reranking",
"multimodal-rag",
"embeddings",
"citations",
"document-ingestion",
"mcp",
"mcp-server",
"pydantic-ai",
"docling",
]
@ -33,6 +40,13 @@ dependencies = [
"haiku.rag-slim[docling,voyageai,cohere,zeroentropy,tui,cross-encoder]==0.75.0",
]
[project.urls]
Homepage = "https://ggozad.github.io/haiku.rag/"
Documentation = "https://ggozad.github.io/haiku.rag/"
Repository = "https://github.com/ggozad/haiku.rag"
Issues = "https://github.com/ggozad/haiku.rag/issues"
Changelog = "https://ggozad.github.io/haiku.rag/changelog/"
[project.scripts]
haiku-rag = "haiku.rag.cli:cli"

View file

@ -1,24 +1,14 @@
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.ggozad/haiku-rag",
"title": "haiku.rag",
"description": "Local-first agentic RAG with citations - hybrid search, reranking, multimodal document retrieval",
"version": "{{VERSION}}",
"description": "Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling",
"websiteUrl": "https://ggozad.github.io/haiku.rag/",
"repository": {
"url": "https://github.com/ggozad/haiku.rag",
"source": "github"
},
"license": "MIT",
"keywords": [
"rag",
"lancedb",
"vector-database",
"embeddings",
"search",
"qa",
"research",
"docling",
"pydantic-ai"
],
"packages": [
{
"registryType": "pypi",
@ -29,11 +19,11 @@
"runtimeArguments": [
{
"type": "positional",
"value": "serve"
"value": "mcp"
},
{
"type": "named",
"name": "--mcp"
"name": "--stdio"
}
],
"transport": {

View file

@ -1,6 +1,6 @@
[project]
site_name = "haiku.rag"
site_description = "Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling."
site_description = "Local-first agentic RAG. Index your documents, then ask questions and get answers cited to page numbers and section headings. Hybrid search, reranking, and multimodal retrieval on embedded LanceDB."
site_url = "https://ggozad.github.io/haiku.rag/"
repo_url = "https://github.com/ggozad/haiku.rag"
repo_name = "ggozad/haiku.rag"