mcp-server-moegirl-wiki
by YukiSakiko
README.md
# mcp-server-moegirl-wiki
[](https://pypi.org/project/mcp-server-moegirl-wiki/)
[](LICENSE)
English | [简体中文](README.zh-CN.md)
MCP server for [萌娘百科 (Moegirl Wiki)](https://zh.moegirl.org.cn/). Two tools: search entries and fetch a page's intro.
## Install
```bash
uvx mcp-server-moegirl-wiki # recommended
pipx run mcp-server-moegirl-wiki
pip install mcp-server-moegirl-wiki
```
## Tools
### `search_moegirl(keyword: str, limit: int = 5)`
Returns `{"results": [{"title", "url", "snippet"}, ...], "count": int}`.
### `get_page(title: str, max_length: int = 6250)`
Returns `{"title", "content", "url", "page_id"}` — full plain-text rendering of the page (all sections, templates expanded, links resolved). Auto-follows redirects. `content` is truncated to `max_length` characters; default 6250 covers a typical character page in full, pass larger (e.g. 20000) for very long pages.
## Environment variables
| Variable | Default | Description |
|---|---|---|
| `MOEGIRL_MAX_LENGTH` | `6250` | Default `max_length` for `get_page` when the caller does not specify one. Useful for tuning per-deployment without forking the package. Invalid/non-positive values are ignored with a warning. |
## Configuration
### Claude Desktop
```json
{
"mcpServers": {
"moegirl-wiki": {
"command": "uvx",
"args": ["mcp-server-moegirl-wiki"]
}
}
}
```
### MaiBot (`config/bot_config.toml`)
MaiBot's default config already has the `[mcp]` block — just replace the `servers` line:
```toml
servers = [{name = "moegirl", enabled = true, transport = "stdio", command = "uvx", args = ["mcp-server-moegirl-wiki"], env = {MOEGIRL_MAX_LENGTH = "6250"}, url = "", headers = {}, http_timeout_seconds = 30.0, read_timeout_seconds = 300.0, authorization = {mode = "none", bearer_token = ""}}]
```
Tweak `MOEGIRL_MAX_LENGTH` to taste (raise to `20000` for very long pages, lower to `1500` for quick lookups). If `uvx` is not on `PATH`, swap `command`/`args` for `command = "pipx", args = ["run", "mcp-server-moegirl-wiki"]`.
## Development
```bash
git clone https://github.com/XXXxx7258/mcp-server-moegirl-wiki
cd mcp-server-moegirl-wiki
uv sync --group dev
uv run pytest -m network
uv run ruff check .
```
## Limitations
- `get_page` returns rendered plain text (templates expanded, links resolved). Raw wikitext (`prop=revisions`, `action=parse`, `?action=raw`, `Special:Export`) is blocked by Moegirl Wiki's site-wide ACL — empirically verified that bot-password login does **not** unlock it; only `sysop`/staff groups can call these actions.
- Uses the `mzh.moegirl.org.cn` mirror.
## License
[MIT](LICENSE)
TDQS
A3.8/5.0
Scored across 2 tools
Disambiguation5/5
The two tools have clearly distinct purposes: one searches for pages, the other retrieves the content of a specific page. There is no overlap or ambiguity.
Naming Consistency5/5
Both tool names follow a consistent verb_noun pattern (get_page, search_moegirl), using snake_case. The naming is clear and predictable.
Tool Count3/5
With only two tools, the server feels minimal for a wiki. While it covers basic search and retrieval, the scope is narrow; typically 4-8 tools would be more appropriate.
Completeness2/5
The tool surface has significant gaps for a wiki domain: missing operations like listing pages, retrieving sections, getting categories, or browsing history. Agents will likely fail to accomplish common wiki tasks.
Maintenance
ActivityInactive
ResponsivenessNo issues