
docs-mcp
ãŠãŒã¶ãŒãèšå®ããããã¥ã¡ã³ããå¹ççã«æ€çŽ¢ã»åç §ã§ããMCPãµãŒããŒã§ãã
<a href="https://glama.ai/mcp/servers/@herring101/docs-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@herring101/docs-mcp/badge" alt="Docs-MCP MCP server" /> </a>åææ¡ä»¶
docs-mcpã䜿çšããã«ã¯uvãå¿ èŠã§ããuvã¯Pythonããã±ãŒãžãšãããžã§ã¯ã管çã®ããã®é«éãªããŒã«ã§ãã
uvã®ã€ã³ã¹ããŒã«
<details> <summary>ã䜿ãã®OSã«åãããŠéžæããŠãã ãã</summary>macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | shWindows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Homebrew (macOS)
brew install uvpipã§ã®ã€ã³ã¹ããŒã«
pip install uv詳现ã¯uvã®ã€ã³ã¹ããŒã«ã¬ã€ããåç §ããŠãã ããã
äž»ãªæ©èœ
- ð ããã¥ã¡ã³ãäžèŠ§è¡šç€º - ãã¹ãŠã®ããã¥ã¡ã³ããšãã®èª¬æãäžèŠ§è¡šç€º
- ð grepæ€çŽ¢ - æ£èŠè¡šçŸã䜿ã£ãé«éãªå šææ€çŽ¢
- ð§ ã»ãã³ãã£ãã¯æ€çŽ¢ - OpenAI Embeddingsã䜿ã£ãæå³çãªé¡äŒŒæ€çŽ¢ïŒèŠèšå®ïŒ
- ð ããã¥ã¡ã³ãååŸ - æå®ããããã¥ã¡ã³ãã®å šå 容ãååŸ
- ð ããŒãžããŒã·ã§ã³å¯Ÿå¿ - 倧ããªããã¥ã¡ã³ããããŒãžåäœã§å¹ççã«é²èЧ
ã¯ã€ãã¯ã¹ã¿ãŒã
ð æãã·ã³ãã«ãªäœ¿ãæ¹
æ¢åã®ããã¥ã¡ã³ãããããããžã§ã¯ãã§ããã«äœ¿ããŸãïŒ
# ããã¥ã¡ã³ã管ççšãã©ã«ããäœæ
mkdir -p my-docs/docs
# ããã¥ã¡ã³ããã¡ã€ã«ãdocs/ã«é
眮Claude Desktopã®èšå®ïŒclaude_desktop_config.jsonïŒã«è¿œå ïŒ
{
"mcpServers": {
"docs": {
"command": "uvx",
"args": ["docs-mcp"],
"env": {
"DOCS_BASE_DIR": "/path/to/my-docs"
}
}
}
}éèŠ: docs-mcpã¯åžžã«ãããžã§ã¯ããã©ã«ãå
ã®docs/ãã£ã¬ã¯ããªãåç
§ããŸãã
ã»ããã¢ããã¬ã€ã
æ¹æ³1: æ¢åã®ããã¥ã¡ã³ãã§äœ¿ã
æå ã«ããMarkdownãããã¹ããã¡ã€ã«ãããã«æ€çŽ¢å¯èœã«ã§ããŸãïŒ
- ãããžã§ã¯ããã©ã«ããäœæ
docs/ãã£ã¬ã¯ããªã«ããã¥ã¡ã³ããé 眮- Claude Desktopã®èšå®ãæŽæ°
â
ã¡ãªãã: ã³ãã³ãã©ã€ã³æäœäžèŠãããã«äœ¿ãã
â ãã¡ãªãã: ã€ã³ããŒãããŒã«ã䜿ããªã
æ¹æ³2: ã€ã³ããŒãããŒã«ã掻çšãã
GitHubãWebãµã€ãããããã¥ã¡ã³ããåã蟌ãå ŽåïŒ
# ããã¥ã¡ã³ã管çãããžã§ã¯ããã»ããã¢ãã
uv init my-docs
cd my-docs
uv add docs-mcp
# GitHubããããã¥ã¡ã³ããã€ã³ããŒã
uv run docs-mcp-import-github https://github.com/owner/repo
# ç¹å®ã®ãã£ã¬ã¯ããªã ãã€ã³ããŒã
uv run docs-mcp-import-github https://github.com/owner/repo/tree/main/docs -o project-docsâ
ã¡ãªãã: å€éšããã¥ã¡ã³ããç°¡åã«åã蟌ãã
â ãã¡ãªãã: uvã®ã»ããã¢ãããå¿
èŠ
é«åºŠãªæ©èœ
ð§ ã»ãã³ãã£ãã¯æ€çŽ¢ãæå¹ã«ãã
OpenAI Embeddingsã䜿ã£ãæå³çãªæ€çŽ¢ã远å ã§ããŸãïŒ
# 1. OpenAI APIããŒãèšå®
export OPENAI_API_KEY="sk-..."
# 2. ã¡ã¿ããŒã¿ãçæïŒãããžã§ã¯ããã£ã¬ã¯ããªã§å®è¡ïŒ
uv run docs-mcp-generate-metadataClaude Desktopã®èšå®ã§APIããŒã远å ïŒ
{
"mcpServers": {
"docs": {
"command": "uvx",
"args": ["docs-mcp"],
"env": {
"DOCS_BASE_DIR": "/path/to/my-docs",
"OPENAI_API_KEY": "sk-..." // ã»ãã³ãã£ãã¯æ€çŽ¢ãæå¹ã«ãªã
}
}
}
}詳现ãªèšå®ãªãã·ã§ã³
{
"mcpServers": {
"docs": {
"command": "uvx",
"args": ["docs-mcp"],
"env": {
"DOCS_BASE_DIR": "/path/to/my-docs",
"OPENAI_API_KEY": "sk-...",
"DOCS_FOLDERS": "api,guides,examples", // ç¹å®ã®ãã©ã«ãã®ã¿èªã¿èŸŒã¿
"DOCS_FILE_EXTENSIONS": ".md,.mdx,.txt,.py", // 察象ãã¡ã€ã«æ¡åŒµåãå¶é
"DOCS_MAX_CHARS_PER_PAGE": "5000", // 1ããŒãžãããã®æå€§æåæ°
"DOCS_LARGE_FILE_THRESHOLD": "10000" // èªåããŒãžããŒã·ã§ã³éŸå€ïŒæåæ°ïŒ
}
}
}
}å©çšå¯èœãªããŒã«
MCPããŒã«ïŒClaudeå ã§äœ¿çšïŒ
list_docs- ããã¥ã¡ã³ãäžèŠ§è¡šç€ºget_doc- ããã¥ã¡ã³ãå 容ååŸïŒããŒãžããŒã·ã§ã³å¯Ÿå¿ïŒgrep_docs- æ£èŠè¡šçŸæ€çŽ¢semantic_search- æå³çãªé¡äŒŒæ€çŽ¢ïŒèŠOpenAI APIããŒïŒ
ð ããŒãžããŒã·ã§ã³æ©èœã®äœ¿ãæ¹
倧ããªããã¥ã¡ã³ãïŒ15,000æåè¶ ïŒã§ã¯èªåçã«1ããŒãžç®ã衚瀺ãããããŒãžããŒã·ã§ã³ã®äœ¿çšãæšå¥šãããŸãïŒ
# åºæ¬çãªäœ¿ãæ¹ïŒåŸæ¥éãïŒ
get_doc("path/to/document.md") # å°ããªãã¡ã€ã«ã¯å
šæè¡šç€ºã倧ããªãã¡ã€ã«ã¯èªåçã«1ããŒãžç®
# ããŒãžããŒã·ã§ã³äœ¿çš
get_doc("path/to/document.md", page=1) # 1ããŒãžç®ïŒããã©ã«ã10,000æåãŸã§ïŒ
get_doc("path/to/document.md", page=2) # 2ããŒãžç®
get_doc("path/to/document.md", page=3) # 3ããŒãžç®ããŒãžããŒã·ã§ã³åºåäŸïŒ
ð Document: pytest/reference/plugin_list.rst
ð Page 2/5 (chars 10,001-20,000/45,123)
ð Lines 285-570/1,324 | Max chars per page: 10,000
â ïž Large document auto-paginated. To see other pages:
ð¡ get_doc('pytest/reference/plugin_list.rst', page=3) # Next page
ð¡ get_doc('pytest/reference/plugin_list.rst', page=5) # Last page
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
[ããã¥ã¡ã³ãã®å
容]ã³ãã³ãã©ã€ã³ããŒã«ïŒããã¥ã¡ã³ã管ççšïŒ
docs-mcp-import-url- Webãµã€ãããããã¥ã¡ã³ããã€ã³ããŒãdocs-mcp-import-github- GitHubãªããžããªããã€ã³ããŒãdocs-mcp-generate-metadata- ã»ãã³ãã£ãã¯æ€çŽ¢çšã¡ã¿ããŒã¿ãçæ
å¿ èŠãªç°å¢
- uv - Pythonç°å¢ãšããã±ãŒãžç®¡çããŒã«ïŒ
uvxã³ãã³ãã§å®è¡ïŒ - Python 3.12以äžïŒuvãèªåçã«ç®¡çïŒ
- OpenAI APIããŒïŒã»ãã³ãã£ãã¯æ€çŽ¢ã䜿çšããå Žåã®ã¿ïŒ
詳现èšå®
ç°å¢å€æ°
| 倿°å | 説æ | ããã©ã«ãå€ |
|---|---|---|
OPENAI_API_KEY | OpenAI APIããŒïŒã»ãã³ãã£ãã¯æ€çŽ¢çšïŒ | ãªã |
DOCS_BASE_DIR | ããã¥ã¡ã³ããããžã§ã¯ãã®ã«ãŒã | çŸåšã®ãã£ã¬ã¯ã㪠|
DOCS_FOLDERS | èªã¿èŸŒããã©ã«ãïŒã«ã³ãåºåãïŒ | docs/å
ã®å
šãã©ã«ã |
DOCS_FILE_EXTENSIONS | 察象ãã¡ã€ã«æ¡åŒµå | ããã©ã«ãã®æ¡åŒµåãªã¹ã |
DOCS_MAX_CHARS_PER_PAGE | ããŒãžããŒã·ã§ã³ã®1ããŒãžãããã®æå€§æåæ° | 10000 |
DOCS_LARGE_FILE_THRESHOLD | 倧ããªãã¡ã€ã«ã®èªåããŒãžããŒã·ã§ã³éŸå€ïŒæåæ°ïŒ | 15000 |
ãµããŒãããããã¡ã€ã«åœ¢åŒ
<details> <summary>ã¯ãªãã¯ããŠå±é</summary>- ããã¥ã¡ã³ã:
.md,.mdx,.txt,.rst,.asciidoc,.org - èšå®:
.json,.yaml,.yml,.toml,.ini,.cfg,.conf,.xml,.csv - ã³ãŒã:
.py,.js,.jsx,.ts,.tsx,.java,.cpp,.c,.h,.go,.rs,.rb,.php - ã¹ã¯ãªãã:
.sh,.bash,.zsh,.ps1,.bat - Web:
.html,.css,.scss,.vue,.svelte - ãã®ä»:
.sql,.graphql,.proto,.ipynb,.dockerfile,.gitignore
ãã£ã¬ã¯ããªæ§é ã®äŸ
my-docs/
âââ docs/
âââ api/
â âââ reference.md
âââ guides/
â âââ quickstart.md
âââ examples/
âââ sample.pyéçºè åãæ å ±
ãœãŒã¹ããã®éçº
git clone https://github.com/herring101/docs-mcp.git
cd docs-mcp
uv sync
# ãã¹ã
uv run pytest tests/
# ãã«ã
uv buildã³ãã³ãã©ã€ã³ããŒã«ã®è©³çް
<details> <summary>ã¯ãªãã¯ããŠå±é</summary>docs-mcp-import-url
Webãµã€ãããããã¥ã¡ã³ããã€ã³ããŒã
docs-mcp-import-url https://example.com/docs --output-dir importedãªãã·ã§ã³:
--output-dir,-o: åºåãã£ã¬ã¯ããªåïŒdocs/é äžã«ä¿åïŒ--depth,-d: ã¯ããŒã«æ·±åºŠ--include-pattern,-i: å«ããURLãã¿ãŒã³--exclude-pattern,-e: é€å€ããURLãã¿ãŒã³--concurrent,-c: åæããŠã³ããŒãæ°
docs-mcp-import-github
GitHubãªããžããªããã€ã³ããŒãããã©ã³ããæå®ããªãå Žåã¯ããã©ã«ããã©ã³ãïŒmain/masterçïŒãèªåæ€åºããŸãã
# ãªããžããªå
šäœãã€ã³ããŒã
docs-mcp-import-github https://github.com/owner/repo
# ç¹å®ã®ãã¹ã®ã¿ã€ã³ããŒãïŒdocs/importedã«ä¿åãããïŒ
docs-mcp-import-github https://github.com/owner/repo/tree/main/docs --output-dir imported
# masterãã©ã³ãã®ãªããžããªãèªåæ€åº
docs-mcp-import-github https://github.com/Cysharp/UniTaskãªãã·ã§ã³:
--output-dir,-o: åºåãã£ã¬ã¯ããªåïŒdocs/é äžã«ä¿åãããã©ã«ã: ãªããžããªåïŒ
docs-mcp-generate-metadata
ã»ãã³ãã£ãã¯æ€çŽ¢çšã®ã¡ã¿ããŒã¿ãçæ
export OPENAI_API_KEY="your-key"
docs-mcp-generate-metadataã»ãã¥ãªãã£
- APIããŒã¯ç°å¢å€æ°ã§ç®¡ç
DOCS_FOLDERSãšDOCS_FILE_EXTENSIONSã§ã¢ã¯ã»ã¹ãå¶é- å€éšãããã¯ãŒã¯ã¢ã¯ã»ã¹ã¯OpenAI APIã®ã¿
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
<details> <summary>ããããåé¡</summary>Claude Desktopã«è¡šç€ºãããªã
- èšå®ãã¡ã€ã«ã®æ§æã確èª
DOCS_BASE_DIRãæ£ãããã¹ãæããŠããã確èª- Claude Desktopãåèµ·å
ã»ãã³ãã£ãã¯æ€çŽ¢ãåäœããªã
OPENAI_API_KEYãèšå®ãããŠããã確èªdocs-mcp-generate-metadataãå®è¡ããã確èª
ã€ã³ããŒãã倱æãã
- URL/GitHubãªããžããªãã¢ã¯ã»ã¹å¯èœã確èª
- ãããã¯ãŒã¯æ¥ç¶ã確èª
ã©ã€ã»ã³ã¹
MIT License - LICENSE
ã³ã³ããªãã¥ãŒã·ã§ã³
CONTRIBUTING.mdãåç §ããŠãã ããã
brew install uvBefore it works, you'll need: DOCS_BASE_DIR
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.