GRACE Hello MCP
RemoteAbout GRACE Hello MCP
GRACE Hello MCP is a small remote MCP server for testing or demonstrating a greeting tool. It also advertises a custom PNG icon in its initialization response.
Key features
- 01Expose the say_hello tool
- 02Advertise a custom server icon
- 03Use Streamable HTTP transport
- 04Deploy with a Render blueprint
Use cases
- 01Test an MCP client's tool connection
- 02Demonstrate MCP server icon metadata
MCP support
It exposes the say_hello tool at an MCP endpoint over Streamable HTTP, and includes its custom icon in server metadata.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://grace-hello-mcp.onrender.com/mcpclaude mcp add --transport http rajitharul-grace-hello https://grace-hello-mcp.onrender.com/mcp{"mcpServers":{"rajitharul-grace-hello":{"type":"http","url":"https://grace-hello-mcp.onrender.com/mcp"}}}Open in Cursor{"servers":{"rajitharul-grace-hello":{"type":"http","url":"https://grace-hello-mcp.onrender.com/mcp"}}}Open in VS Code{"mcpServers":{"rajitharul-grace-hello":{"type":"http","url":"https://grace-hello-mcp.onrender.com/mcp"}}}{"mcpServers":{"rajitharul-grace-hello":{"serverUrl":"https://grace-hello-mcp.onrender.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEGRACE Hello MCP
A very simple remote MCP server (Streamable HTTP transport) that advertises a
custom icon per the MCP spec (rev 2025-11-25, SEP-973), ready to deploy on
Render.
It exposes one tool, say_hello, and serves a custom PNG icon that is advertised
in the initialize response's serverInfo.icons.
Project layout
| File | Purpose |
|---|---|
server.js | The MCP server (Express + @modelcontextprotocol/sdk, Streamable HTTP). |
make_icon.py | Generates static/icon.png (stdlib only, no deps). Edit to change the icon. |
static/icon.png | The icon that gets advertised + served. |
render.yaml | Render blueprint for one-click deploy. |
Run locally
npm install
npm start # serves on http://localhost:3000
- Landing/health page (shows the icon): http://localhost:3000/
- MCP endpoint:
http://localhost:3000/mcp - Icon: http://localhost:3000/icon.png
Quick smoke test:
curl -s -X POST http://localhost:3000/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
You should see serverInfo.icons in the response.
Or use the official MCP Inspector (renders the icon):
npx @modelcontextprotocol/inspector
# then connect to http://localhost:3000/mcp (Streamable HTTP)
Deploy on Render
- Push this folder to a GitHub repo.
- In Render: New ➜ Blueprint, point it at the repo. It reads
render.yamland creates a free Node web service. (Or New ➜ Web Service manually: buildnpm install, startnpm start.) - Render injects
RENDER_EXTERNAL_URLautomatically, soserver.jsbuilds the correct absolutehttps://<your-service>.onrender.com/icon.pngicon URL — no manual env vars needed. - Your MCP endpoint is
https://<your-service>.onrender.com/mcp.
Note: Render's free plan sleeps on idle, so the first request after a while may take ~30s to wake.
Add it to an MCP client
Claude Code (CLI):
claude mcp add --transport http grace-hello https://<your-service>.onrender.com/mcp
Then in a session: /mcp to see it, and ask Claude to "use say_hello to greet Rajith".
Claude Desktop / other GUI clients: add a remote/HTTP MCP server pointing at
https://<your-service>.onrender.com/mcp.
About the icon (read this)
This server advertises its icon correctly per the MCP spec: the icons array
appears on serverInfo (and on the tool). It must be an https:// or data:
URI — we use the hosted https://.../icon.png.
Whether a client shows it is up to that client. Icon rendering is a newer, inconsistently-supported feature:
- ✅ MCP Inspector and other spec-aware clients read and display it.
- ⚠️ Claude Code / Claude Desktop currently still show their default placeholder for arbitrary third-party servers — the branded icons in Claude's marketplace are first-party integrations configured on Anthropic's side. As client icon support matures, this server is already compliant and will "just work" with no changes.
Customize
- Icon: edit colors/shapes in
make_icon.py, thennpm run make-icon(regeneratesstatic/icon.png). Or just drop your own 512×512 PNG atstatic/icon.png. - Tools: add more
setRequestHandlercases / tool definitions inserver.js.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.