streamable-httpupdated 2mo ago
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.
What can you do with GRACE Hello MCP?
GRACE 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.
Install
Add GRACE Hello MCP to your client. Pick the one you use.
claude mcp add --transport http grace-hello-mcp https://grace-hello-mcp.onrender.com/mcpcodex mcp add grace-hello-mcp --url https://grace-hello-mcp.onrender.com/mcp{
"mcpServers": {
"grace-hello-mcp": {
"url": "https://grace-hello-mcp.onrender.com/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"grace-hello-mcp": {
"type": "http",
"url": "https://grace-hello-mcp.onrender.com/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"grace-hello-mcp": {
"url": "https://grace-hello-mcp.onrender.com/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"grace-hello-mcp": {
"serverUrl": "https://grace-hello-mcp.onrender.com/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation18/25
- Maintenance16/25
- Trust6/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 70 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint ā no local install
Version history
| Versions | Published |
|---|---|
| 1.0.0Latest | Jun 19, 2026 |