Greeter MCP Server
Integrates with Gemini, Google's AI assistant, allowing for custom tool creation and interaction through the MCP protocol. The example server provides a simple greeting tool that can be called from Gemini CLI.
Click on "Install 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., "@Greeter MCP Servergreet me as John"
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.
MCP Example
Quick and simple repo to demonstrate the very basics MCP and Gemini CLI. Nothing more.
Related MCP server: Hello World MCP Server
Quick Setup
Quick setup of a new project (using uv):
curl -LsSf https://astral.sh/uv/install.sh | sh(linux and mac)
Clone project and initialize virtualenv
git clone https://github.com/jrmlhermitte/gemini-mcp-example.git
cd gemini-mcp-example
uv sync
source .venv/bin/activateWrite MCP Server And Test
The file we'll run is in
gemini-mcp-example/main.pyand already defined. Take a look at it. The main components are
# ...
mcp = FastMCP("greeter")
# ...
@mcp.tool()
def greet(name: str) -> str:
return f'Hello {name}!'
# ...
if __name__ == "__main__":
# NOTE: stdio is the default.
mcp.run(transport='stdio')Run file
(Don't forget to activate your virtual env source .venv/bin/activate)
python gemini-mcp-example/main.pyInit communication
We're going to initialize the 2024-11-05 protocol version using stdin/stdout (the stdio protocol which we setup our fast MCP server to use).
Paste this exactly into your shell:
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{"roots":{"listChanged":true},"tools":{"listChanged":true},"sampling":{},"elicitation":{}},"clientInfo":{"name":"ExampleClient","title":"ExampleClientDisplayName","version":"1.0.0"}}}You should see:
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2024-11-05","capabilities":{"experimental":{},"prompts":{"listChanged":false},"resources":{"subscribe":false,"listChanged":false},"tools":{"listChanged":false}},"serverInfo":{"name":"greeter","version":"1.10.1"}}}NOTE: The json commands here and below must be pasted as is. You cannot have newlines in between. If the formatting is incorrect, the server will just ignore your requests.
When you do, paste this to start the connection:
{"jsonrpc":"2.0","method":"notifications/initialized"}Now type this to list available tools:
{"jsonrpc":"2.0","method":"tools/list","id":1}you should see something like this (you may see additional logging):
{"jsonrpc":"2.0","id":1,"result":{"tools":[{"name":"greet","description":"","inputSchema":{"properties":{"name":{"title":"Name","type":"string"}},"required":["name"],"title":"greetArguments","type":"object"},"outputSchema":{"properties":{"result":{"title":"Result","type":"string"}},"required":["result"],"title":"greetOutput","type":"object"}}]}}Congratulations! You have successfully started a Stdio connection with an MCP server! Now test calling your tool:
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"greet","arguments":{"name":"Teal'c"}}}you should then see:
{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"Hello Teal'c!"}],"structuredContent":{"result":"Hello Teal'c!"},"isError":false}}This is how you're going to setup an MCP server with Gemini.
Gemini CLI will run your server as a child process and send commands to stdin and receive responses from stdout using the stdio protocol.
Gemini CLI
Integrating with Gemini CLI.
npm install -g @google/gemini-cliAdd the Gemini extension from here (docs):
(NOTE: This should be run from the root of this github repo)
mkdir -p ~/gemini/extensions
ln -s $PWD/gemini-mcp-example ~/.gemini/extensionsStart gemini and list mcp servers
geminiThen type:
/mcpYou should see this:

NOTE: You must start gemini from the code folder. The reason is that the
extension runs python ./gemini-mcp-example/main.py. If you want to make this runnable from everywhere, you'll need to make sure your base python environment contains the fastmcp library and that the gemini-extension.json refers to an absolute path.
NOTE: If this is your first time setting up Gemini CLI, you will also see some easy to follow setup steps.
Give it your name. It will likely try to call your tools.
Input something like:
My name is Teal'cGemini should figure that it might want to call the greeting tool, given you've introduced yourself. You should get a request to call the tool:

And it should hopefully have called the tool.

Troubleshooting
Running into problems? Try running the mcp server yourself to see if it's able to start up:
source .venv/bin/activate
python gemini-extension/main.py(Also don't forget to run source .venv/bin/activate before starting gemini; We're running this in a local virtual environment here.)
Where to go from here?
This demonstrates how easy it is to setup an MCP server and integrate it with Gemini. You should be able to have a basic enough understanding to integrate it with your own tools now!
Available Tools
1 toolgreetD
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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?
Tool has no description.
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. Dates show when Glama detected each change.
1 tool update
v0.1.0- First observed
greet
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'greet' has a clear and distinct purpose that cannot be confused with any other tool in this set.
The naming is trivially consistent because there is only one tool. The tool name 'greet' follows a simple verb pattern, and with no other tools to compare against, there are no inconsistencies in naming conventions.
A single tool is generally too few for most server purposes, as it limits functionality and can feel thin. For a 'Greeter' server, while a single greeting tool might suffice for basic use, it lacks depth and may not support varied interactions or extended features that agents might expect.
The server is severely incomplete for a greeter domain. With only a 'greet' tool, there are obvious gaps such as no ability to customize greetings, handle different languages, manage user preferences, or provide follow-up interactions. This minimal surface will likely cause agent failures in more complex scenarios.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A very simple remote MCP server that greets you, with a custom icon.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA simple demonstration MCP server that provides basic greeting functionality and server information. Enables users to generate hello messages and retrieve server details through tools and resources.-
- -licenseCqualityNot gradedmaintenanceA simple boilerplate MCP server that provides a basic greeting tool for demonstration purposes. Serves as a starting template for developers to quickly create and deploy custom MCP servers.116-
- AlicenseCqualityDmaintenanceA simple MCP server that provides a basic greeting tool for saying hello with customizable names. Serves as a boilerplate template for developers to quickly create and deploy new MCP servers.116MIT
- FlicenseDqualityDmaintenanceA demonstration MCP server built with fastmcp that provides basic utility tools including number addition and greeting functionality. Integrates with Gemini CLI to enable natural language interaction with simple mathematical and greeting operations.2-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jrmlhermitte/gemini-mcp-example'
If you have feedback or need assistance with the MCP directory API, please join our Discord server