rokadoc MCP Server
Provides a Model Context Protocol interface to NTT Docomo's rokadoc RAG service, enabling document conversion and semantic search from MCP-compatible clients.
README
rokadoc MCP Server
NTTドコモビジネスが提供するRAGサービス「rokadoc」の機能を、Model Context Protocol (MCP) を介してAIアシスタントから利用可能にするサーバーです。
VS Code、Kiro、Claude Desktop等のMCPクライアントから、ドキュメント変換やRAG検索をツールとして直接呼び出せます。
前提条件
- Docker: コンテナの実行に必要
- rokadoc API Key: rokadocサービスへの認証に使用するAPIキー
イメージの取得
Docker Hub または GitHub Container Registry のどちらからでも利用可能です。
Docker Hub
docker pull snackpans/rokadoc-mcp-server
GitHub Container Registry (GHCR)
docker pull ghcr.io/yuma-shin/rokadoc-mcp-server:latest
タグ一覧
| タグ | 説明 |
|---|---|
latest |
最新リリース |
1 |
v1系の最新(メジャーバージョン追従) |
1.0 |
v1.0系の最新(マイナーバージョン追従) |
1.0.0 |
特定バージョン固定 |
安定運用にはメジャーバージョンタグ(例: 1)の利用を推奨します。
ソースからビルドする場合
docker build -t rokadoc-mcp-server .
コンテナの起動
Docker Hub のイメージを使用する場合:
docker run -i --rm -e ROKADOC_API_KEY=<your-api-key> snackpans/rokadoc-mcp-server
GHCR のイメージを使用する場合:
docker run -i --rm -e ROKADOC_API_KEY=<your-api-key> ghcr.io/yuma-shin/rokadoc-mcp-server
環境変数
| 環境変数 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
ROKADOC_API_KEY |
はい | - | rokadoc APIの認証キー |
ROKADOC_BASE_URL |
いいえ | https://api.rokadoc.ntt.com |
rokadoc APIのベースURL |
オンプレミス環境でのBase URL変更
オンプレミス環境のrokadocインスタンスに接続する場合は、ROKADOC_BASE_URL を設定してください。
docker run -i --rm \
-e ROKADOC_API_KEY=<your-api-key> \
-e ROKADOC_BASE_URL=https://rokadoc.your-company.com \
snackpans/rokadoc-mcp-server
注意事項:
- URLは
https://で始まる必要があります http://を指定した場合、自動的にhttps://に変換されます(警告メッセージが出力されます)- 末尾のスラッシュは自動的に除去されます
MCPクライアント設定
VS Code / Kiro
.vscode/mcp.json または .kiro/settings/mcp.json に以下を追加します。
convert_document でローカルファイルを変換する場合は、-v オプションでホストのディレクトリをコンテナにマウントしてください。以下の例ではホストのホームディレクトリ全体を /workspace にマウントしています:
{
"inputs": [
{
"type": "promptString",
"id": "rokadoc-api-key",
"description": "rokadoc API Key",
"password": true
}
],
"servers": {
"rokadoc": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ROKADOC_API_KEY",
"-v",
"${userHome}:/workspace",
"snackpans/rokadoc-mcp-server"
],
"env": {
"ROKADOC_API_KEY": "${input:rokadoc-api-key}"
}
}
}
}
GHCRを使う場合は "snackpans/rokadoc-mcp-server" を "ghcr.io/yuma-shin/rokadoc-mcp-server" に置き換えてください。
この設定では、ホスト上の ~/Documents/report.pdf をコンテナ内で /workspace/Documents/report.pdf としてアクセスできます。convert_document ツールには コンテナ内のパス を指定してください。
例:
- ホスト:
C:\Users\username\Documents\report.pdf - コンテナ内(ツールに渡すパス):
/workspace/Documents/report.pdf
ファイル変換が不要でRAG検索のみ利用する場合はボリュームマウントなしで動作します:
{
"inputs": [
{
"type": "promptString",
"id": "rokadoc-api-key",
"description": "rokadoc API Key",
"password": true
}
],
"servers": {
"rokadoc": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ROKADOC_API_KEY",
"snackpans/rokadoc-mcp-server"
],
"env": {
"ROKADOC_API_KEY": "${input:rokadoc-api-key}"
}
}
}
}
Claude Desktop
claude_desktop_config.json に以下を追加します(Claude Desktopは mcpServers キーを使用します):
{
"mcpServers": {
"rokadoc": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ROKADOC_API_KEY=<your-api-key>",
"-v",
"C:\\Users\\<username>:/workspace",
"snackpans/rokadoc-mcp-server"
]
}
}
}
オンプレミス環境の場合
Base URLを変更する場合は args に環境変数を追加します:
{
"servers": {
"rokadoc": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ROKADOC_API_KEY",
"-e",
"ROKADOC_BASE_URL=https://rokadoc.your-company.com",
"-v",
"${userHome}:/workspace",
"snackpans/rokadoc-mcp-server"
],
"env": {
"ROKADOC_API_KEY": "${input:rokadoc-api-key}"
}
}
}
}
提供ツール
全ツールは space_id または space_name パラメータを受け付けます。スペースを指定するとそのスペース内に限定して操作を行います。未指定時は全スペースが対象です。space_name を指定した場合、内部でスペース一覧API(GET /v1/user/spaces/join)を呼び出し、対応する space_id を自動的に解決します。
convert_document
ドキュメントファイルをrokadocに送信し、構造化テキストへの変換を開始します。
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
file_path |
string | はい | 変換対象のファイルパス |
from_page |
number | いいえ | 変換開始ページ(正の整数) |
to_page |
number | いいえ | 変換終了ページ(正の整数) |
space_id |
string | いいえ | スペースID |
space_name |
string | いいえ | スペース名(space_id未指定時に名前で解決) |
対応ファイル形式: PDF (.pdf), Word (.doc, .docx), Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx)
使用例:
convert_document でファイル /path/to/document.pdf を変換してください
convert_document で /path/to/report.docx の1〜5ページを「営業部」スペースに変換してください
レスポンス例:
{
"code": 202,
"status": "Pending",
"conversion_id": "xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
list_conversions
変換ジョブの一覧を取得します。
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
space_id |
string | いいえ | スペースID |
space_name |
string | いいえ | スペース名(space_id未指定時に名前で解決) |
使用例:
list_conversions で変換ジョブの状態を確認してください
list_conversions で「営業部」スペースのジョブ一覧を確認してください
レスポンス例:
{
"conversions": [
{
"conversion_id": "xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "Succeeded",
"document_name": "sample.pdf",
"created_date": "202501151030",
"updated_date": "202501151031"
}
]
}
get_conversion_result
完了した変換ジョブの結果ドキュメントを取得します。
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
conversion_id |
string | はい | 変換ジョブID |
space_id |
string | いいえ | スペースID |
space_name |
string | いいえ | スペース名(space_id未指定時に名前で解決) |
使用例:
get_conversion_result で conversion_id "xxxx" の結果を取得してください
レスポンス例:
{
"conversion_id": "xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"document_name": "sample.pdf",
"status": "Succeeded",
"roka_response": {
"meta": { "separate_method": "page" },
"document_summary": "",
"units": [
{
"unit": 1,
"elements": [
{
"type": "text",
"text": "変換されたテキスト内容...",
"page": 1,
"reading_order": 1
}
],
"description": "変換されたテキスト内容..."
}
]
}
}
search_documents
rokadocに登録されたドキュメントに対してRAG検索を実行します。
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
query |
string | はい | 検索クエリ(1〜1000文字) |
tags |
string[] | いいえ | タグフィルタ(AND条件) |
max_results |
number | いいえ | 最大取得件数(デフォルト: 3、最大: 5) |
space_id |
string | いいえ | スペースID |
space_name |
string | いいえ | スペース名(space_id未指定時に名前で解決) |
使用例:
search_documents で「セキュリティポリシー」について検索してください
search_documents で「営業部」スペースから「売上報告」を検索してください
レスポンス例:
{
"results": [
{
"document_name": "セキュリティガイドライン.pdf",
"context": "パスワードは最低12文字以上とし、英大文字・小文字・数字・記号を含める...",
"page_number": 3,
"conversion_id": "xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tags": ["セキュリティ"]
}
]
}
トラブルシューティング
認証エラー(HTTP 401/403)
[認証エラー] rokadoc APIへの認証に失敗しました。
対処法:
- 環境変数
ROKADOC_API_KEYに正しいAPIキーが設定されているか確認 - APIキーの有効期限が切れていないか確認
- APIキー前後に不要な空白が含まれていないか確認
接続エラー
[接続エラー] rokadoc APIに接続できません。
対処法:
- ネットワーク接続が正常か確認
ROKADOC_BASE_URLが正しいURLを指しているか確認- ファイアウォールやプロキシの設定を確認
- DNSが正しく解決できているか確認
タイムアウト
[タイムアウト] rokadoc APIからの応答がありません。
対処法:
- rokadocサービスが稼働中か確認
- ネットワークの遅延が大きくないか確認
- 大きなファイルの変換の場合は時間がかかることがあります
- リクエストは自動的に最大3回リトライされます
コンテナ起動エラー
APIキー未設定:
Error: 環境変数 ROKADOC_API_KEY が設定されていません。
→ -e ROKADOC_API_KEY=<your-api-key> を docker run コマンドに追加してください。
不正なBase URL:
Error: ROKADOC_BASE_URL の形式が不正です。http:// または https:// で始まるURLを指定してください。
→ ROKADOC_BASE_URL に有効なURL(https:// で始まる)を設定してください。
ライセンス
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。