Face Expression MCP Server
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Give your assistant a face
A two-hour, hands-on MCP workshop for final-year students. An assistant calls three local tools; a browser viewer shows the selected reaction immediately.
Status: working application with six clearly labeled development placeholders. The final realistic portrait and expression assets are pending. No LivePortrait, GPU, Python, database, or cloud account is needed to run the student app.
Quick start
Install Node.js 22.12+ (Node 24 recommended) and Git. Clone this repository, then run:
npm ci
npm run build
npm startOpen http://127.0.0.1:3333. Leave the terminal running. In another terminal, run npm run doctor. On PowerShell systems that block npm.ps1, use npm.cmd in place of npm.
Try the buttons, then connect GitHub Copilot or Claude Code. Example prompt: “List the available face expressions, then set the face to shocked.” Approve the tool when asked. The assistant must actually call the tool; ordinary chat text alone does not change the viewer.
Related MCP server: mood
Verify
npm run build
npm test
npx playwright install chromium
npm run test:e2enpm run verify runs the build, protocol/server tests, and browser tests together. Browser tests use a separate app on port 3344; keep that port free. They spawn a real MCP process over stdio and check browser display acknowledgements. See verification status for the distinction between automated tests and assistant-client rehearsal.
For the complete student lifecycle (fresh starter → implement → browser/MCP tests → backed-up reset → verify starter again), run npm run test:rehearsal or use the workshop-rehearsal skill. See full rehearsal and participant reset instructions. These reusable materials are available on main; use workshop/full-rehearsal for test work.
Teach and learn
The root project is the completed demo. npm run workshop:starter creates a separate workshop-starter/ copy with only list_expressions implemented. It refuses to overwrite an existing copy. The starter builds and runs; the full acceptance tests intentionally fail until the student implements the remaining tools. Solutions stay available for instructor-assisted recovery.
Configuration
The viewer binds only to 127.0.0.1. Default port: 3333. To change it in PowerShell: $env:FACE_PORT='3335', then npm start. Also set FACE_PORT to the same value in the MCP server's env configuration. Never place secrets in the repository. State is in memory: browser refresh restores the current reaction, while restarting the app resets to neutral.
Prepared still images change expressions; this version does not animate speech or lip-sync. Expressions represent conversational reactions, not feelings experienced by an assistant.
Code and original placeholder SVGs: MIT. Any replacement portraits must have their own documented redistribution rights.
This server cannot be deployed
Maintenance
Related MCP Connectors
List, configure, chat with, analyse and embed your Echo AI assistants.
Build real-time AI avatar personas and videos; manage voices, knowledge, sessions and meetings.
1Give your AI a face, a voice, and a personality. 3D avatars with custom personas.
Affect analysis, 3D avatar params, empathy hints and somatic emotion decode.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI to send expressive stickers based on conversation context, with a built-in UI for managing stickers.57MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI to display its current mood as a locally generated ASCII face using Stable Diffusion, with a tool feel(emotion) that the AI can call to update the terminal display.MIT
- FlicenseAqualityDmaintenanceExposes ComfyUI-generated character avatars as tools, allowing control of expressions and poses via preset workflows with adjustable parameters.3-
- AlicenseNot gradedqualityCmaintenanceEnables supported local AI clients to control a visible desktop presence through bounded presentation tools such as animations, window control, and short local speech over a loopback endpoint, without granting decision or execution authority.MIT