gemini-web-mcp
This server enables interaction with Gemini Web (gemini.google.com) via MCP using browser cookies and a Google AI subscription (no API key required). Conversations are saved locally by default, not to the official Gemini history (configurable). You can:
Start a new conversation (
gemini_chat_new): Provide a prompt and a human-friendly label; optionally specify a model (e.g., "Pro", "3.6 Flash") and enable enhanced thinking mode (thinking=true) which persists throughout the conversation.Continue a conversation (
gemini_chat_continue): Resume a labeled conversation with a new prompt, automatically inheriting the original model.List saved conversations (
gemini_chat_list): View all locally stored conversations with their label, model, turn count, thinking mode status, and last-used timestamp.Retrieve conversation history (
gemini_chat_history): Get the full message history (role, text, timestamp) for a specific conversation by label.Delete a conversation (
gemini_chat_delete): Remove a saved conversation from local storage using its label.List available models (
gemini_models_list): Fetch the models available to your Google account (e.g., Flash-Lite, Flash, Pro) with their names and descriptions.
Provides tools for interacting with Google's Gemini Web chat service, enabling creation and continuation of conversations, managing chat sessions, and listing available models.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gemini-web-mcpStart a new chat and ask Gemini to explain the difference between AI and ML"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpgemini-web-mcp が PATH に入ります。
curl -LsSf https://astral.sh/uv/install.sh | sh2. cookie を入れる
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 login2-b. ブラウザが別ホストにある場合
Claude Code をリモートの Linux で動かし、ブラウザは手元の PC という構成ではこちらです。MCP server は Claude Code と同じホストで動くため、リモート側にログイン済みブラウザが無く、自動抽出は使えません。
ブラウザで https://gemini.google.com を開く
DevTools → Application → Cookies →
https://gemini.google.com__Secure-1PSIDと__Secure-1PSIDTSの値をコピーすぐに 実行 (
__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 serveClaude Code を再起動し、/mcp で gemini-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 / doctor も uvx --from ... 経由で叩く必要があります。
Related MCP server: gemini-skill
使い方
tool | 用途 |
| 新規会話を開始し、 |
| 既存の会話を再開して続きを訊く |
| 保存中の会話一覧 |
| 指定した会話の履歴を全件返す |
| 指定した会話をローカルから削除 |
| このアカウントで使えるモデル一覧 |
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 | 説明 |
| Flash-Lite | すばやく回答を得るのに最適 |
| Flash | あらゆる場面でサポート |
| 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 | 既定値 | 用途 |
|
|
|
|
|
|
|
| cookie キャッシュの場所 |
| (空) | cookie を直接渡す (初回のみ) |
| (空) | 同上 |
| (空 = | 設定ディレクトリの基点 |
sessions.json は ~/.config/gemini-web-mcp/sessions.json。ディレクトリは 0700、ファイルは 0600 で作られます。
複数アカウントを併用する
GEMINI_COOKIE_PATH と XDG_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 を実行してください。
症状 | 対処 |
| cookie の期限切れです。 |
|
|
|
|
| Google AI 側の使用量上限です。リセットまで待つ必要があります |
Claude Code が tool を認識しない | Claude Code を再起動し、 |
開発
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 toolsgemini_chat_continueA
既存 conversation に prompt を投げ、応答を返す。
モデルは会話開始時のものを引き継ぐ。Gemini は会話途中のモデル変更を
ModelInvalid (error code 1050 = model inconsistent with history) で
拒否するため、途中変更は受け付けない。別モデルで訊きたい場合は
gemini_chat_new で新しい label を作る。
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | 既存 session の label。 | |
| prompt | Yes | 続きの質問本文。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes | |
| label | Yes | |
| metadata | Yes | |
| thinking | No | |
| thoughts | No |
TDQS
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.
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.
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.
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.
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.
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 から削除する。
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | 削除する session の label。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | Yes |
TDQS
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.
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.
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.
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.
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.
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 の会話履歴を全件返す。
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | 対象 session の label。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| label | Yes | |
| model | Yes | |
| turns | Yes |
TDQS
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.
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.
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.
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.
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.
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 一覧。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 を投げ、応答を返す。
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | local の identifier。[a-zA-Z0-9_-]{1,64}。 | |
| model | No | UI 表記 ("3.6 Flash")、display 名 ("Pro")、model_id のいずれでも可。一覧は gemini_models_list。省略時は env `GEMINI_WEB_MCP_DEFAULT_MODEL`、未設定なら "Pro"。 | |
| prompt | Yes | 質問本文。 | |
| thinking | No | 強化思考モード (UI 表記「Flash 拡張」等)。腰を据えて考えさせたい難問向け。応答は遅くなるが thoughts に思考過程が返る。会話ごとに固定され gemini_chat_continue にも引き継がれる。 |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes | |
| label | Yes | |
| metadata | Yes | |
| thinking | No | |
| thoughts | No |
TDQS
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.
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.
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.
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.
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.
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=...) に渡せる。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v0.1.0- First observed
gemini_chat_continue - First observed
gemini_chat_delete - First observed
gemini_chat_history - First observed
gemini_chat_list - First observed
gemini_chat_new - First observed
gemini_models_list
TDQS
Scored across 6 tools
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.
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.
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.
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
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for AI dialogue using various LLM models via AceDataCloud
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Related MCP Servers
- AlicenseAqualityFmaintenanceModel Context Protocol (MCP) server implementation that enables Claude Desktop to interact with Google's Gemini AI models.632258MIT
- AlicenseNot gradedqualityDmaintenanceMCP server to control Gemini web interface via CDP for AI image generation, chat, and image extraction.829MIT
- AlicenseAqualityCmaintenanceMCP server for Google Gemini that enables image generation, editing, file analysis, and chat using browser cookies, no API key needed.653AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceMCP server for Google's Gemini CLI with OAuth, enabling use of Gemini through Claude Desktop/Code without API keys – just log in with a Google account.1-