Skip to main content
Glama
TakashiAihara

gemini-web-mcp

gemini-web-mcp

Query Gemini Web (gemini.google.com) from Claude Code and other MCP clients.

Uses browser cookies instead of the official Gemini API, so an existing Google AI subscription's models and quota can be used. Built on HanaokaYuzu/Gemini-API.

  • 会話は自分で決めた label で扱えます。conversation ID を持ち回る必要はありません

  • 既定では Gemini Web の履歴に残りません。手元で使っている会話一覧が MCP の会話で埋まりません

  • モデルを選べます (3.6 Flash / Pro など)。強化思考モードも指定できます

Tested on Linux and macOS. Windows は未対応 (パスは ~/.config/... 固定、fcntl に依存)。


セットアップ

新しいホストでゼロから始める場合、この順に進めてください。

1. インストール

uv tool install git+https://github.com/TakashiAihara/gemini-web-mcp

gemini-web-mcp が PATH に入ります。

curl -LsSf https://astral.sh/uv/install.sh | sh

Gemini Web は API キーではなくブラウザの cookie で認証します。取得方法は環境によって 2 通りあります。

2-a. ブラウザが同じホストにある場合

browser-cookie3 が Chrome / Firefox 等から自動抽出します。

uv tool install "git+https://github.com/TakashiAihara/gemini-web-mcp[browser]"
gemini-web-mcp login

2-b. ブラウザが別ホストにある場合

Claude Code をリモートの Linux で動かし、ブラウザは手元の PC という構成ではこちらです。MCP server は Claude Code と同じホストで動くため、リモート側にログイン済みブラウザが無く、自動抽出は使えません。

  1. ブラウザで https://gemini.google.com を開く

  2. DevTools → Application → Cookies → https://gemini.google.com

  3. __Secure-1PSID__Secure-1PSIDTS の値をコピー

  4. すぐに 実行 (__Secure-1PSIDTS は短時間で失効します)

対話入力 (推奨) — 値がコマンドラインに乗らないので shell 履歴に残りません。

gemini-web-mcp login --interactive
__Secure-1PSID  :          # 入力は表示されません
__Secure-1PSIDTS: (空可)
GEMINI__SECURE_1PSID='...' GEMINI__SECURE_1PSIDTS='...' gemini-web-mcp login

この形は値が shell 履歴 (~/.zsh_history 等) に平文で残ります。 履歴に残したくない場合は上の対話入力を使うか、secret manager 経由で注入してください。

成功すると:

Login OK.
  cookie cache : ~/.config/gemini-web-mcp/cookies
  sessions     : ~/.config/gemini-web-mcp/sessions.json

一度成功すればキャッシュされ、以降は自動更新されます。 環境変数の再指定は不要で、次の手順で cookie を渡す必要もありません。

cookie は Google アカウントのセッションそのものです。チャットや issue に貼らないでください。

3. 動作確認

gemini-web-mcp doctor

認証・cookie・使えるモデル・保存済み session をまとめて確認します。問題があれば対処方法を表示します。

[OK  ] config dir       ~/.config/gemini-web-mcp (mode 0o700)
[OK  ] cookie cache     ~/.config/gemini-web-mcp/cookies (mode 0o700) / 1 件 / 最終更新 0.1 時間前
[OK  ] environment      上書きなし (既定値を使用)
[OK  ] sessions         ~/.config/gemini-web-mcp/sessions.json (未作成 — 会話を作ると生成されます)
[OK  ] authentication   account_status=1000
[OK  ] models           3 件: 3.5 Flash-Lite, 3.6 Flash, 3.1 Pro
[OK  ] default model    'Pro' -> 3.1 Pro

ネットワークに出さずローカルの設定だけ見る場合は --offline を付けます。

doctor は cookie の値を出力しませんが、絶対パス (ユーザー名を含む) と契約中のモデル一覧が出ます。公開 issue に貼る場合はその 2 点を伏せてください。

4. Claude Code に登録

claude mcp add gemini-web -- gemini-web-mcp serve

Claude Code を再起動し、/mcpgemini-web が認識されていれば完了です。

claude mcp add gemini-web -- \
  uvx --from git+https://github.com/TakashiAihara/gemini-web-mcp gemini-web-mcp serve

この場合 gemini-web-mcp は PATH に入らないため、login / doctoruvx --from ... 経由で叩く必要があります。


Related MCP server: gemini-skill

使い方

tool

用途

gemini_chat_new(prompt, label, model?, thinking?)

新規会話を開始し、label で名前を付ける

gemini_chat_continue(label, prompt)

既存の会話を再開して続きを訊く

gemini_chat_list()

保存中の会話一覧

gemini_chat_history(label)

指定した会話の履歴を全件返す

gemini_chat_delete(label)

指定した会話をローカルから削除

gemini_models_list()

このアカウントで使えるモデル一覧

label[a-zA-Z0-9_\-]{1,64}。会話継続に必要な metadata は server が保持するので、呼び出し側は ID を覚える必要がありません。

手元の会話との分離

既定で temporary モード を使うため、MCP 経由の会話は Gemini Web のサイドバーに出ません。手元で使っている履歴に混ざらないようにするためです。

履歴に残したい場合は GEMINI_WEB_MCP_TEMPORARY=0 を設定します。

履歴に出ないにもかかわらず、label に紐づけた metadata を server が保持しているため 別プロセス・別セッションからでも会話を継続できます

モデル

gemini_models_list() でアカウントに紐づくモデルを取得できます (実測例):

name

display

説明

3.5 Flash-Lite

Flash-Lite

すばやく回答を得るのに最適

3.6 Flash

Flash

あらゆる場面でサポート

3.1 Pro

Pro

高度な数学とコーディングに最適

model には UI 表記 ("3.6 Flash") / display 名 ("Pro") / model_id のいずれでも渡せます。既定は "Pro"。版番号ではなく display 名を既定にしているのは、Google が Pro / Flash / Flash-Lite の区分を保ったまま版を上げる (3.1 Pro → 3.2 Pro) ためです。

gemini_chat_continue ではモデルを変更できません。Gemini が会話途中のモデル変更を拒否するためで、別モデルで訊きたい場合は gemini_chat_new で新しい label を作ってください。

強化思考モード

gemini_chat_new(thinking=True) で強化思考モード (UI 表記「Flash 拡張」等) を有効にできます。難問向けで、応答は遅くなりますが thoughts に思考過程が返ることがあります。会話ごとに固定され gemini_chat_continue にも引き継がれます。

なお thoughts は同一条件でも返ったり返らなかったりするため、強化思考が効いているかの判定には使えません。


設定

env

既定値

用途

GEMINI_WEB_MCP_DEFAULT_MODEL

Pro

model 省略時の既定

GEMINI_WEB_MCP_TEMPORARY

1

1=履歴に出さない / 0=出す

GEMINI_COOKIE_PATH

~/.config/gemini-web-mcp/cookies

cookie キャッシュの場所

GEMINI__SECURE_1PSID

(空)

cookie を直接渡す (初回のみ)

GEMINI__SECURE_1PSIDTS

(空)

同上

XDG_CONFIG_HOME

(空 = ~/.config)

設定ディレクトリの基点

sessions.json~/.config/gemini-web-mcp/sessions.json。ディレクトリは 0700、ファイルは 0600 で作られます。

複数アカウントを併用する

GEMINI_COOKIE_PATHXDG_CONFIG_HOME を分ければ、アカウントごとに MCP server を並立できます。

claude mcp add gemini-web-work \
  --env GEMINI_COOKIE_PATH=$HOME/.config/gemini-web-mcp-work/cookies \
  --env XDG_CONFIG_HOME=$HOME/.config/gemini-web-mcp-work-xdg \
  -- gemini-web-mcp serve

困ったとき

まず gemini-web-mcp doctor を実行してください。

症状

対処

AUTH_EXPIRED が返る

cookie の期限切れです。gemini-web-mcp login --interactive で入れ直してください

command not found: gemini-web-mcp

uv tool install していないか、PATH が通っていません

MODEL_INVALID が返る

gemini_models_list() で使えるモデル名を確認してください

USAGE_LIMIT が返る

Google AI 側の使用量上限です。リセットまで待つ必要があります

Claude Code が tool を認識しない

Claude Code を再起動し、claude mcp list に出ているか確認してください


開発

git clone https://github.com/TakashiAihara/gemini-web-mcp
cd gemini-web-mcp
uv sync --all-extras
uv run pytest -v

設計と、モデル選択・思考モードの解析経緯は docs/design.md にあります。

依存の pin について

gemini-webapi は PyPI 版ではなく git の特定 commit を pin しています。PyPI 最新リリース v2.0.0 は ChatSession が状態を全 session で共有するバグを含み、別の会話に前の会話の ID が漏れます。修正は commit にありますが、以降リリースが切られていません。解除条件は pyproject.toml[tool.uv.sources] を参照してください。


License

AGPL-3.0-or-later. See LICENSE.

依存する gemini-webapi が AGPL-3.0 のため、本パッケージもそれに揃えています。

Available Tools

6 tools
gemini_chat_continueA

既存 conversation に prompt を投げ、応答を返す。

モデルは会話開始時のものを引き継ぐ。Gemini は会話途中のモデル変更を ModelInvalid (error code 1050 = model inconsistent with history) で 拒否するため、途中変更は受け付けない。別モデルで訊きたい場合は gemini_chat_new で新しい label を作る。

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes既存 session の label。
promptYes続きの質問本文。

Output Schema

ParametersJSON Schema
NameRequiredDescription
textYes
labelYes
metadataYes
thinkingNo
thoughtsNo

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals important behavioral traits: model inheritance from conversation start, rejection of model changes with the specific error code 1050 (ModelInvalid), and the workaround via gemini_chat_new. This goes beyond what the tool's name implies and helps the agent avoid predictable errors.

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 and well-structured, with the primary purpose stated upfront in a single sentence. The second sentence adds critical technical context about model inheritance and error handling, each part earning its place. No unnecessary words or redundancy.

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 two-parameter tool with an output schema, the description is fairly complete. It covers the main operation, a key error scenario, and provides an alternative tool usage. However, it does not mention what happens if the label does not exist or if the conversation context is invalid, which could be relevant for error handling. Overall, it is sufficient but not exhaustive.

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?

The input schema already provides descriptions for both parameters (label as existing session label, prompt as continuation text) with 100% coverage. The description adds minimal new semantic information about the parameters, primarily restating the purpose of 'prompt' and 'label' in the context of continuing a conversation. Thus, a 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 clearly states the tool's function: sending a prompt to an existing conversation and returning a response. It specifies the resource (existing conversation) and action (send prompt), and distinguishes itself from siblings by explicitly mentioning that creating a new label with gemini_chat_new is the alternative for different models.

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 provides explicit usage guidance, stating that the model is carried over from the conversation start and that mid-conversation model changes are rejected. It further recommends using gemini_chat_new to start a new label if a different model is desired, clearly defining when to use the alternative.

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

gemini_chat_deleteB

指定 session を local から削除する。

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes削除する session の label。

Output Schema

ParametersJSON Schema
NameRequiredDescription
deletedYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does add the important context that deletion happens 'from local', implying no remote effect, but it does not disclose whether the action is reversible, whether associated history is also removed, or any destructive consequences. This is insufficient for a delete operation.

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 concise sentence that directly states the action and scope. It is front-loaded and contains no irrelevant or redundant information, making it highly efficient.

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

Completeness3/5

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

The tool is simple with one well-documented parameter and an output schema. However, despite the low complexity, the description lacks usage context and any warning about destructive consequences. The 'local' qualifier provides some scope, but overall it is only minimally 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?

The input schema already describes the 'label' parameter as '削除する session の label' (the label of the session to delete), and the description echoes this with '指定 session'. With 100% schema coverage, the description adds little new meaning beyond the schema, so the 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 clearly states the action ('delete') and the target resource ('specified session') with a scope ('from local'), which clearly distinguishes it from sibling tools like gemini_chat_new, gemini_chat_list, and gemini_chat_history. The verb and resource are specific and unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It simply states what the tool does, so an agent has no context for when deletion is appropriate or how it interacts with other operations like continuing or listing sessions.

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

gemini_chat_historyA

指定 session の会話履歴を全件返す。

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes対象 session の label。

Output Schema

ParametersJSON Schema
NameRequiredDescription
labelYes
modelYes
turnsYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It does mention that it returns '全件' (all records), which indicates no pagination or filtering. It also implies a read-only operation by nature, but does not explicitly state side effects or error conditions. Some relevant behavioral context is missing, such as whether it requires an existing session or how it orders results.

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, concise sentence that immediately states the tool's function. No unnecessary words or redundancy, making it easy to parse.

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?

The tool is simple with one parameter, and an output schema exists, so the description need not explain return values. The description covers the core action (returning all history) and the input concept (session). It lacks explicit notes about prerequisites or error handling, but for a straightforward getter, it is sufficient.

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?

Schema coverage is 100% and the parameter 'label' is described as '対象 session の label'. The tool description refers to '指定 session' which aligns with the label parameter, but adds no additional meaning beyond the schema. The parameter semantics are adequately covered by the schema, so a 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 states a specific verb and resource: '返す' (return) the '会話履歴' (conversation history) for a given session. This clearly distinguishes it from siblings like gemini_chat_list (which likely lists sessions) and gemini_chat_new/continue (which create or continue chats).

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

Usage Guidelines3/5

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

The description implies usage: when you have a specific session label and need its full history. However, it does not explicitly mention alternatives or when not to use it. The intended context is clear from the tool name and description, but no explicit guidance is provided.

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

gemini_chat_listB

保存中の conversation 一覧。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden for behavioral disclosure. It only states 'list of saved conversations' with no details on ordering, filtering, pagination, or response structure, which is insufficient for a full understanding of behavior.

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

Conciseness4/5

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

The description is a single, concise sentence with no wasted words. However, it is under-specified, which limits its usefulness despite being well-structured.

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

Completeness3/5

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

Given that this is a simple zero-parameter list tool with an output schema, the description is minimally adequate for basic understanding. Yet it lacks any contextual cues about when to use it or what it returns beyond 'saved conversations', making it incomplete for an agent to fully leverage it.

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 tool has zero parameters, and the schema is an empty object. With no parameters to explain, the baseline score of 4 applies, as the description does not need to compensate for any undocumented parameters.

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

Purpose4/5

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

The description '保存中の conversation 一覧。' clearly indicates this tool returns a list of saved conversations, which is a specific resource. However, it lacks an explicit verb like 'list' or 'get' and does not differentiate itself from sibling tools such as gemini_chat_history.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not state when to use this tool versus alternatives like gemini_chat_history or gemini_chat_new, leaving the agent to infer applicability from the name alone.

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

gemini_chat_newB

新規 conversation を作って prompt を投げ、応答を返す。

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYeslocal の identifier。[a-zA-Z0-9_-]{1,64}。
modelNoUI 表記 ("3.6 Flash")、display 名 ("Pro")、model_id のいずれでも可。一覧は gemini_models_list。省略時は env `GEMINI_WEB_MCP_DEFAULT_MODEL`、未設定なら "Pro"。
promptYes質問本文。
thinkingNo強化思考モード (UI 表記「Flash 拡張」等)。腰を据えて考えさせたい難問向け。応答は遅くなるが thoughts に思考過程が返る。会話ごとに固定され gemini_chat_continue にも引き継がれる。

Output Schema

ParametersJSON Schema
NameRequiredDescription
textYes
labelYes
metadataYes
thinkingNo
thoughtsNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it only states the basic action, with no mention of side effects (e.g., conversation persistence), auth needs, or rate limits. The description does not add behavioral context beyond what the name already implies.

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

Conciseness4/5

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

The description is a single, compact sentence that communicates the core purpose without any fluff. It is appropriately front-loaded and every word contributes to the meaning, though it could benefit from slightly more detail on usage.

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

Completeness3/5

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

With an output schema present and a well-covered input schema, the description is minimally sufficient for a simple creation tool. However, it omits the persistent side effect of creating a stored conversation and any caveats, which would be valuable given the absence of annotations.

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?

The input schema provides 100% coverage with thorough descriptions for each parameter (label format, model options, thinking mode). The tool description itself adds no parameter-specific meaning beyond the schema, which meets the baseline for a fully documented schema.

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 action: create a new conversation, send the prompt, and return a response. The use of '新規' (new) distinguishes it from sibling tools like gemini_chat_continue, which handles existing conversations.

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

Usage Guidelines3/5

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

The tool's name and the phrase '新規 conversation' imply it is for starting fresh conversations, but the description does not explicitly state when to choose this over gemini_chat_continue or mention any exclusions. Usage context is implied rather than clearly spelled out.

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

gemini_models_listA

このアカウントで実際に使えるモデルの一覧。

name をそのまま gemini_chat_new(model=...) に渡せる。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/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 for behavioral disclosure. The word 'list' implies a read-only operation, but it does not explicitly state that there are no side effects or that it is safe to call. It also does not mention whether the list is dynamic or static, though the phrase 'actually usable' adds some context beyond a bare list.

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 two concise sentences, front-loaded with the purpose and immediately followed by the key usage tip. Every sentence earns its place; there is no fluff or repetition.

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 this is a simple list tool with no parameters, an output schema available, and a clear sibling relationship (gemini_chat_new), the description is complete. It tells the user what the tool does and how to apply the result, which is sufficient contextual information.

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 tool has zero parameters, so the description does not need to explain parameter details. The baseline for 0 parameters is 4, and the description appropriately focuses on the output (`name`) rather than input semantics, which is relevant since the schema has no properties.

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 lists models available for the account, using a specific verb (list) and resource (models). It also distinguishes itself by noting the `name` can be passed directly to `gemini_chat_new`, which ties it to the sibling tools and clarifies its unique role.

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 implies when to use this tool—when you need to know which models are available—and gives explicit guidance that the returned `name` values can be used with `gemini_chat_new`. It doesn't explicitly state exclusions or alternatives, but the context is clear and the guidance is actionable.

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. 6 tool updatesv0.1.0
    • First observedgemini_chat_continue
    • First observedgemini_chat_delete
    • First observedgemini_chat_history
    • First observedgemini_chat_list
    • First observedgemini_chat_new
    • First observedgemini_models_list

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: starting a new conversation, continuing an existing one, listing models, listing conversations, viewing history, and deleting. The overlap between new and continue is resolved by explicit descriptions of creating vs. continuing.

Naming Consistency4/5

All tools share the gemini_ prefix and mostly follow a resource_verb pattern (chat_new, chat_continue, chat_list, chat_delete, models_list). The exception is gemini_chat_history, where 'history' is a noun rather than a verb, creating a minor inconsistency.

Tool Count5/5

With 6 tools, the server is well-scoped for chat conversation management. Each tool serves a distinct function in the lifecycle (create, continue, list, read history, delete) plus model discovery, without unnecessary bloat.

Completeness5/5

The tool set covers the complete workflow: create a conversation, continue it, list all conversations, retrieve full history, and delete. Model listing supports selecting the right model upfront. No obvious gaps remain for the stated purpose of interacting with Gemini conversations.

Maintenance

ActivitySlowing
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers