Skip to main content
Glama

OMOS-MCP

MCPサーバーがAIエージェント(Claude、ChatGPT、Cursor など)に OMOS Shared Drive 内のプロジェクト文書を読み取り、質問に回答します。各回答は元のファイルとGoogle Driveリンクを参照します。

対応するDrive構造:

OMOS/
├── Project A/
│   ├── Project Overview/
│   ├── Timeline/
│   ├── Design/
│   │   ├── System Flow/
│   │   ├── DB/
│   │   └── API/
│   └── BRD/
└── Project B/ ...

ツール

ツール

説明

omos_index

Drive全体をインデックス化: 全プロジェクト + 全ファイル、IDとリンク付き(エージェントは常にこれを最初に呼び出す)

omos_search

Drive全体を全文検索し、プロジェクト/セクションでスコープを制限可能

omos_read

ファイルをテキストとして読み取り — Google Docs/Sheets/Slides、PDF、.docx、.xlsx、md/text、および画像(画像はエージェントに直接表示)

omos_refresh

即座にインデックスを再構築(通常のキャッシュは5分)

エージェントは以下の順序で検索します: プロジェクト名でフィルター → 見つからない場合はプロジェクト概要を確認し、ユーザーに確認 → 次に タイムライン | BRD | 設計(システムフロー / DB / API) についての質問かどうかを確認 → 質問が広範囲にわたる場合は、スコープを絞るために質問を返します(サーバー指示に組み込み済み)。

Related MCP server: brkt-gdrive-mcp

初回セットアップ: サービスアカウント

サーバーはサービスアカウントを使用してDriveにアクセスします(各ユーザーのログインは不要):

  1. console.cloud.google.com にアクセス → 新しいプロジェクトを作成(または既存のものを使用)

  2. APIs & Services → Library → Google Drive API を検索 → Enable をクリック

  3. IAM & Admin → Service Accounts → Create Service Account → 名前を入力(例: omos-mcp)→ Create をクリック(ロールの割り当てはスキップ可能、権限は付与しない)

  4. 作成したサービスアカウントに移動 → Keys タブ → Add Key → Create new key → JSON → キーファイルがダウンロードされる

  5. サービスアカウントのメールアドレス(omos-mcp@<project>.iam.gserviceaccount.com)をコピーし、共有Drive / OMOSフォルダに閲覧者として共有

  6. ルートOMOSのフォルダIDを取得: ブラウザでフォルダを開き、URL https://drive.google.com/drive/folders/<これがIDです> を確認

環境変数

変数

説明

OMOS_ROOT_FOLDER_ID

ルートOMOSのフォルダID(手順6より)— 必須

GOOGLE_SERVICE_ACCOUNT_JSON

キーJSONファイルの内容全体、またはファイルへのパス — 必須

OMOS_AUTH_TOKEN

(HTTPモード)クライアントが送信するbearerトークン

OMOS_INDEX_TTL

インデックスのキャッシュTTL(秒)(デフォルト300)

OAUTH_ISSUER / OAUTH_AUDIENCE / PUBLIC_URL

(HTTPモード)Claude.ai / ChatGPT Web向けOAuthモードを有効化

PORT

(HTTPモード)待受ポート(デフォルト8000)

ローカル実行

事前に uv をインストールしてください(curl -LsSf https://astral.sh/uv/install.sh | sh)

1) .env を設定(サーバーがリポジトリルートから自動的に読み込みます):

cp .env.example .env

.env を編集し、OMOS_ROOT_FOLDER_ID とキーファイルのパスを設定します(例: キーファイルを ./service-account.json に配置 — これはすでにgitignoreされています)

2) Claude Code(stdio)と接続:

claude mcp add omos -- uv run --directory "/path/to/OMOS-MCP" omos-mcp

Claude Desktop / Cursor / Windsurf — MCP設定に追加:

{
  "mcpServers": {
    "omos": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/OMOS-MCP", "omos-mcp"]
    }
  }
}

3) テスト: エージェントに "OMOSにはどんなプロジェクトがありますか?" と質問 — プロジェクト名とリンクのリストが返るはずです

(オプション)ローカルでHTTPサーバーとして実行: .env で OMOS_AUTH_TOKEN を有効にし、次のコマンドを実行:

uv run omos-mcp-http

エンドポイントは http://localhost:8000/mcp にあり、次の方法で接続:

claude mcp add --transport http omos http://localhost:8000/mcp -H "Authorization: Bearer <OMOS_AUTH_TOKEN>"

MCPリンクとしてデプロイ(Render)

  1. このリポジトリをGitHubにプッシュ(Dockerfile + render.yaml は既に含まれています)

  2. Render → New → Blueprint → このリポジトリを選択

  3. ダッシュボードで環境変数を設定:

    • OMOS_ROOT_FOLDER_ID = ルートOMOSのフォルダID

    • GOOGLE_SERVICE_ACCOUNT_JSON = キーJSONファイルの内容全体(直接貼り付け)

    • OMOS_AUTH_TOKEN Renderが自動生成 → コピーしてチームに配布

  4. デプロイ完了 → エンドポイントは https://<app>.onrender.com/mcp

ユーザーは接続:

claude mcp add --transport http omos https://<app>.onrender.com/mcp \
  -H "Authorization: Bearer <OMOS_AUTH_TOKEN>"

Cursor / VS Code: MCP設定にURL + ヘッダー Authorization: Bearer <token> を入力

Claude.ai / ChatGPT(Web)で使用する — OAuth

Webクライアントにはヘッダーを設定する場所がないため、WorkOS AuthKit などのプロバイダーを通じてOAuthを使用する必要があります(無料枠は100万ユーザーまで):

  1. workos.com にサインアップ → AuthKitを有効化 → ログイン方法を設定し、チームメンバーのみに制限

  2. ダッシュボード → Connect → Configuration → Client ID Metadata Document と Dynamic Client Registration を有効化

  3. Resource Indicator を追加 = https://<app>.onrender.com(/mcp は不要)

  4. Renderに3つの環境変数を追加: OAUTH_ISSUER = AuthKitドメイン、OAUTH_AUDIENCE = https://<app>.onrender.com、PUBLIC_URL = https://<app>.onrender.com

  5. ユーザー: Claude.ai → Settings → Connectors → Add custom connector → https://<app>.onrender.com/mcp を入力 → WorkOSでログイン

OAuthモードとbearerトークンは共存可能 — WebはOAuth、CLIはトークンを引き続き使用できます

コンバーターのテスト

uv run python test_convert.py

Available Tools

4 tools
omos_indexA

Get the full index of the OMOS drive: every project and its files (with file ids and links). Use this whenever the user asks about any internal project, BRD, timeline, design, system flow, DB, API, or เอกสารโปรเจค — ALWAYS call this first, then filter by Project Name before drilling into Timeline / BRD / Design (System Flow, DB, API).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It explicitly states the tool returns the full index of every project with file IDs and links, and implies a read-only operation (no side effects). It does not mention performance, caching, or rate limits, but the zero-parameter nature and output schema presence mitigate the need for deeper behavioral detail. The description adds meaningful context beyond the empty schema and missing annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at three sentences with no wasted words. The first sentence clearly states the core purpose and what is returned. The second sentence provides specific when-to-use guidance. The third sentence prescribes the correct invocation sequence. Every sentence adds distinct value and the critical usage instructions are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has zero parameters and an output schema, the description covers all necessary aspects: what the tool returns (full index of projects and files with IDs and links), when to use it (specific user query scenarios), and how to use it correctly (call first, then filter by project name before drilling into details). The presence of an output schema reduces the need to describe return values, and the description's guidance is fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and 100% schema coverage, meaning there is nothing for the description to add about parameters. The description correctly stays silent on parameters (there are none) and instead focuses on what the tool returns and when to use it. A slight deduction because the description could explicitly state 'no arguments required' to confirm no parameters are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb+resource combination: 'Get the full index of the OMOS drive' and immediately specifies the exact content: every project and its files with IDs and links. It thoroughly distinguishes itself from siblings like 'omos_search' by stating it returns the full unfiltered index, while also providing specific use cases where this tool should be used first.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'whenever the user asks about any internal project, BRD, timeline, design, system flow, DB, API, or เอกสารโปรเจค.' It also provides a sequence: 'ALWAYS call this first, then filter by Project Name before drilling into Timeline / BRD / Design.' This effectively differentiates from omos_search (which presumably handles the filtering step) and sets clear expectations for invocation order.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

omos_readA

Read a file from the OMOS drive as text (Google Docs/Sheets/Slides, PDF, docx, xlsx, markdown/text) or as an image (png/jpg). The response starts with a citation block (file name, path, link) — always include that citation in your answer.

Args: file_id: the Drive file id from omos_index or omos_search

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors: it returns text or image content, starts with a citation block that must be included in answers, and accepts a Drive file ID from omos_index or omos_search. Since no annotations are provided, the description carries the full burden and provides solid behavioral context without contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and well-structured: a one-sentence overview of what the tool does (including format types), then a specific instruction about the citation block, and finally a clear parameter description. Every sentence adds value, and the most critical information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only one parameter, limited schema, and no output schema, the description is complete for its simplicity. It explains the input, output format (including citation), and supported file types. A small gap is not explaining how the output type (text vs image) is determined (e.g., by file extension or a parameter).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains that the file_id parameter should come from omos_index or omos_search, adding meaning beyond the schema's simple type/required. With 0% schema description coverage, the description must compensate, and it does so effectively by specifying the source of valid file IDs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a file from the OMOS drive and specifies supported formats (text types and image types). The verb 'read' combined with the resource 'file from OMOS drive' provides a specific, actionable purpose that distinguishes it from sibling tools like omos_index (indexing) and omos_search (searching).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool (to read a file), and implicitly distinguishes it from omos_index and omos_search which are for listing or searching. However, it does not explicitly state when NOT to use it or mention alternatives for non-file operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

omos_refreshA

Rebuild the drive index so newly added projects/files show up immediately (the index is otherwise cached for a few minutes).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the caching side effect and the rebuild action, but does not mention potential costs (e.g., performance impact), whether it is asynchronous, or any required permissions. The behavior is generally clear but lacks some depth expected for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately conveys the action and purpose. No redundant words; every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless tool with an output schema, the description covers the core functionality and caching behavior. It could be improved by noting typical usage scenarios (e.g., after uploads) or safe call frequency, but it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters; schema description coverage is 100% by default. The description does not need to add parameter details. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('Rebuild the drive index') and the effect ('so newly added projects/files show up immediately'). It distinguishes itself from sibling tools (index, search, read) by focusing on cache invalidation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool—after adding projects/files to bypass caching. It mentions the default caching behavior ('otherwise cached for a few minutes'), but does not explicitly state when not to use it or list alternative tools for similar purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.0
    • First observedomos_index
    • First observedomos_read
    • First observedomos_refresh
    • First observedomos_search

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: omos_index provides the full index, omos_search performs full-text search with optional filters, omos_refresh rebuilds the index, and omos_read reads file content. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tools follow a consistent 'omos_<verb>' pattern (index, search, refresh, read). The naming is predictable and uniform, making it easy for an agent to understand the action each tool performs.

Tool Count5/5

With 4 tools, the set is well-scoped for a drive retrieval server. Each tool addresses a necessary function (listing, searching, refreshing, reading) without being too few or excessive. The count matches the domain's core operations.

Completeness5/5

The tool surface covers the full read lifecycle for the OMOS drive: obtaining the index, searching, refreshing for updates, and reading file content. No obvious gaps exist for a retrieval-focused server; all necessary operations are present.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers