Stable MCP host contract for wg21-wiki-mcp 0.2.x. Tool names, parameter
names/types, error codes, and provenance fields are governed by
STABILITY.md. FastMCP also exposes JSON schemas to MCP
clients at runtime.
All tools return structured Pydantic models (see models.py).
Errors surface as McpError with application codes documented in
README.md.
Full-text search the wiki.
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
str |
required | Search string. |
limit |
int |
10 |
Max hits per page of results. |
namespace |
int | None |
None |
Restrict to a namespace id (list_namespaces). |
cursor |
str | None |
None |
Opaque pagination cursor from a prior response. |
include_snippet |
bool |
False |
When True, include API-generated search excerpts (non-verbatim). |
Returns: SearchResults — titles, URLs, optional next_cursor, and include_snippet
echoing the caller's opt-in. Snippets are omitted unless include_snippet=True; they are
truncated, reformatted excerpts and must not be cited as verbatim wiki content — use
get_page for authoritative text.
Verbatim wikitext for a page or section.
| Parameter | Type | Default | Description |
|---|---|---|---|
title |
str |
required | Page title. |
section |
int | None |
None |
Section index for partial fetch; None = full page. |
max_bytes |
int |
49152 |
Max UTF-8 bytes per chunk. |
cursor |
str | None |
None |
Resume a chunked response. |
refresh |
bool |
False |
Bypass cache and re-fetch from the wiki. |
Returns: PageContent — content, section, has_more, next_cursor, provenance.
Enumerate page titles in a namespace.
| Parameter | Type | Default | Description |
|---|---|---|---|
namespace |
int |
required | Namespace id. |
prefix |
str | None |
None |
Title prefix filter. |
limit |
int |
50 |
Page size. |
cursor |
str | None |
None |
Pagination cursor. |
Returns: PageList — pages[] with title, namespace, namespace_name, optional next_cursor.
List content namespaces and numeric ids.
Parameters: none.
Returns: list[NamespaceInfo] — id, name, canonical.
List discovered meetings (newest first).
| Parameter | Type | Default | Description |
|---|---|---|---|
limit |
int |
10 |
Page size. |
cursor |
str | None |
None |
Pagination cursor. |
Returns: MeetingList — meetings[] with title, active, window_start, window_end, optional next_cursor.
Meeting landing page plus subpage outlink index.
| Parameter | Type | Default | Description |
|---|---|---|---|
meeting |
str | None |
None |
Meeting title; None = latest meeting. |
Returns: MeetingOverview — meeting, home (PageContent), outlinks[].
Raw materials to compose a meeting schedule (server does not compose schedules).
| Parameter | Type | Default | Description |
|---|---|---|---|
meeting |
str | None |
None |
Meeting title; None = latest. |
groups |
list[str] | None |
None |
Filter working-group prefixes. |
include_wikitext |
bool |
True |
Include page bodies in the bundle. |
max_page_bytes |
int |
8192 |
Per-page byte cap when include_wikitext is true. |
Returns: SessionBundle — meeting, time_slots[], pages[], provenance metadata.
Recent edits and new pages.
| Parameter | Type | Default | Description |
|---|---|---|---|
namespace |
int | None |
None |
Scope to one namespace. |
since |
str | None |
None |
ISO-8601 lower bound. |
limit |
int |
50 |
Page size. |
cursor |
str | None |
None |
Pagination cursor. |
Returns: RecentChanges — changes[], optional next_cursor.
Operational status without wiki content.
Parameters: none.
Returns: WikiStatus — authenticated, auth_path, meeting TTL mode, cache counts.
Tool implementations live in tools.py. Build a ServerContext and call the same functions the MCP layer wraps:
from wg21_wiki_mcp.config import Config
from wg21_wiki_mcp.context import ServerContext
from wg21_wiki_mcp import tools
ctx = ServerContext.create(Config.from_env())
tools.get_page(ctx, "Main Page")See README.md for a minimal example.