gemini-understanding
A minimal MCP server that exposes Gemini's web and multimodal understanding (video, audio, document, image) through five dedicated tools.
README
gemini-understanding
A minimal MCP server for one-shot Gemini requests. Each tool call sends one prompt and at most one source, returns one answer, and does not link calls into a continuing conversation.
The server exposes three independent tools:
webremote_filelocal_file
Clients and MCP gateways may expose any subset of the tools. This is useful for remote or isolated deployments where filesystem access is unavailable or undesirable: local_file can be hidden without changing the contract of the remaining tools.
web
Performs one-shot web research with both Gemini server tools enabled:
- Google Search
- URL Context
Input:
{
"prompt": "Research the topic and read https://example.com/page"
}
Ordinary webpage URLs may be included directly in the prompt.
remote_file
Analyzes one public HTTP(S) file URL. The caller must declare the source type; the server does not inspect the URL or reclassify the source.
Input:
{
"url": "https://example.com/report.pdf",
"type": "document",
"prompt": "Summarize the conclusions",
"mimeType": "application/pdf"
}
type is required and must be one of:
imagevideoaudiodocument
mimeType is optional, but it is preferred for direct remote files when known because origin servers may return missing, generic, malformed, or parameterized MIME metadata. Public YouTube URLs are supplied with type: "video" and normally omit mimeType.
Examples:
{
"url": "https://www.youtube.com/watch?v=...",
"type": "video",
"prompt": "Summarize this video"
}
{
"url": "https://example.com/audio.mp3",
"type": "audio",
"prompt": "Transcribe the speech",
"mimeType": "audio/mpeg"
}
The URL is passed directly to Gemini as a typed URI. The server performs no HTTP header probing, MIME sniffing, extension-based routing, downloading, conversion, or cross-type fallback.
local_file
Analyzes one file available on the MCP server filesystem. The caller must declare the source type; the server does not inspect the content or reclassify the source.
Input:
{
"path": "/workspace/report.pdf",
"type": "document",
"prompt": "Summarize the conclusions"
}
type is required and must be one of:
imagevideoaudiodocument
mimeType is optional. The Gemini SDK normally infers it from a recognized file extension. It may be supplied as an override when inference is unavailable or incorrect.
The server:
- resolves relative paths against its working directory;
- uploads the file through the Gemini Files API;
- waits until processing is complete;
- sends the uploaded URI using the declared source type;
- deletes the temporary upload.
The path refers to the filesystem visible to the MCP server process. In a remote, containerized, or isolated deployment, it does not refer to the MCP client's filesystem unless that storage is explicitly mounted or shared.
Configuration
GEMINI_API_KEY required
GEMINI_MODEL default: gemini-3.5-flash-lite
GEMINI_THINKING_LEVEL default: high
Custom model and thinking-level strings are passed through without compatibility validation.
Install from GitHub
claude mcp add gemini-understanding -s user -- \
env GEMINI_API_KEY=YOUR_KEY \
npx -y github:sandlong/gemini-understanding
With explicit optional settings:
claude mcp add gemini-understanding -s user -- \
env GEMINI_API_KEY=YOUR_KEY \
GEMINI_MODEL=gemini-3.5-flash-lite \
GEMINI_THINKING_LEVEL=high \
npx -y github:sandlong/gemini-understanding
Local development
npm install
npm test
npm run build
Run the stdio server:
GEMINI_API_KEY=YOUR_KEY npm start
The stdio implementation can also be placed behind an MCP gateway that exposes it through Streamable HTTP. Tool filtering remains a client or gateway concern.
Error behavior
The server does not silently correct or reroute failed requests. Tool errors include the tool name, processing stage, configured model, thinking level, source, and the original Gemini status, code, and message when available.
A nonexistent server-side path fails at the filesystem stage because no API request can be constructed. Temporary-upload cleanup failures are non-fatal and are reported as warnings.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.