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., "@Memobird MCP ServerPrint a note saying 'Remember to buy groceries' to my thermal printer"
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.
Memobird MCP Server
MCP server for Memobird (咕咕机) thermal printer, based on memobirdsdk.
Prerequisites
Node.js >= 18
Memobird Access Key (from open.memobird.cn)
Memobird device ID (double-click device to print it out)
Setup
npm install
npm run buildConfiguration
Environment Variable | Required | Description |
| Yes | Access Key from open.memobird.cn |
| No | Device ID from |
| No | User ID from |
Usage
Via npx (Recommended)
No local clone needed. Add the following config to use the published npm package directly.
Claude Code — add to ~/.claude/settings.json:
First-time setup (only MEMOBIRD_AK needed, bind_user will be called automatically):
{
"mcpServers": {
"memobird": {
"command": "npx",
"args": ["-y", "memobirdmcp"],
"env": {
"MEMOBIRD_AK": "your-access-key"
}
}
}
}After first binding, add the returned userid and memobirdID to skip bind_user in future sessions:
{
"mcpServers": {
"memobird": {
"command": "npx",
"args": ["-y", "memobirdmcp"],
"env": {
"MEMOBIRD_AK": "your-access-key",
"MEMOBIRD_DEVICE_ID": "your-device-id",
"MEMOBIRD_USER_ID": "12345"
}
}
}
}Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS), same env format as above.
Via local build
If you prefer to run from source:
{
"mcpServers": {
"memobird": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"MEMOBIRD_AK": "your-access-key"
}
}
}
}Tools
bind_user
Bind a user identifier to a Memobird device. Must be called first if MEMOBIRD_DEVICE_ID and MEMOBIRD_USER_ID env vars are not set. Returns a userid and memobirdID — save them to env vars to skip this step in future sessions.
Parameter | Type | Required | Description |
| string | Yes | Device ID (double-click the device to obtain) |
| string | Yes | Your unique user identifier |
print_text
Print text content to the bound device. Supports Chinese characters (auto GBK encoding).
Parameter | Type | Required | Description |
| string | Yes | Text content to print |
print_image
Print a monochrome bitmap image to the bound device. Use convert_image first to convert JPG/PNG.
Parameter | Type | Required | Description |
| string | Yes | Monochrome bitmap as Base64 |
print_from_url
Print content from a web URL to the bound device. Works best with static/server-rendered pages.
Parameter | Type | Required | Description |
| string | Yes | URL to print |
print_from_html
Print content from HTML source to the bound device. Use inline CSS and absolute image URLs.
Parameter | Type | Required | Description |
| string | Yes | HTML source code |
get_print_status
Check the status of a submitted print job.
Parameter | Type | Required | Description |
| string | Yes | Print content ID from a print tool response |
Returns printflag: 1 if printed successfully, 0 if pending/failed.
convert_image
Convert a JPG/PNG image to monochrome bitmap format for printing. Use 384px width for best results.
Parameter | Type | Required | Description |
| string | Yes | JPG or PNG image as Base64 |
Typical Workflow
First time
Call
bind_userwith your device ID and a user identifierSave the returned
useridandmemobirdIDtoMEMOBIRD_USER_IDandMEMOBIRD_DEVICE_IDenv vars in your MCP configUse print tools as needed
Subsequent sessions (env vars set)
Use
print_text/print_from_html/print_from_urldirectly (no binding needed)For images: call
convert_imagefirst, thenprint_imagewith the resultOptionally call
get_print_statusto check if printing completed
License
ISC
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.