AceDataCloud Face Transform MCP: keypoints, beautify, age/gender, swap, cartoon, liveness
One address for any MCP client. You sign in once, after adding it.

At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Odel could not list its tools without signing in.
A Model Context Protocol (MCP) server that exposes the AceDataCloud Face Transform API — face keypoint detection, beautification, age/gender transform, face swap, cartoonization, and liveness detection.
Status: All Face APIs are currently in Alpha. Interfaces may evolve.
The hosted endpoint is https://face.mcp.acedata.cloud/mcp. Choose one route for the MCP client:
| Route | When to use it | Credential setup |
|---|---|---|
| Hosted OAuth | The client supports remote MCP OAuth | Add only the URL, then sign in to AceDataCloud and approve access. No token needs to be pasted into client configuration. |
| Hosted API token | The client cannot finish OAuth, or you need an explicit integration credential | Send an AceDataCloud API token in the Authorization: Bearer … header. Keep it in a local secret store or environment variable. |
| Local stdio | The client runs a local MCP process | Install mcp-face-transform and pass ACEDATACLOUD_API_TOKEN to that process. It still calls the AceDataCloud API. |
The hosted service advertises OAuth metadata and Dynamic Client Registration (DCR). DCR registers the client application; it is not an API key. OAuth signs you in and the client sends the resulting Bearer token; it may reuse or create an API credential for the account. Browser sign-in still requires an AceDataCloud account. The hosted service can be metered: review current service documentation and displayed pricing before a real operation. Do not configure both an OAuth login and a fixed Authorization header for the same server.
Customize → Connectors → Add custom connector, enter https://face.mcp.acedata.cloud/mcp, select sign-in, and choose Register automatically if Claude asks how to register its OAuth client. Complete consent. Claude Desktop's local claude_desktop_config.json is a separate setup. Claude connector guide.claude mcp add --transport http --scope user face https://face.mcp.acedata.cloud/mcp, then claude mcp login face. Check /mcp. Claude Code MCP guide.https://face.mcp.acedata.cloud/mcp. For a project, merge the entry below into <project>/.cursor/mcp.json; for personal use, use ~/.cursor/mcp.json. Cursor MCP guide.https://face.mcp.acedata.cloud/mcp, then finish the browser sign-in. New portable workspace configs use <project>/.mcp.json; the VS Code-specific format below uses <project>/.vscode/mcp.json or the user profile. Check MCP: List Servers. VS Code MCP setup.codex mcp add face --url https://face.mcp.acedata.cloud/mcp, then codex mcp login face. Its user settings are in ~/.codex/config.toml. Official Codex MCP guide.Cursor project config (OAuth):
{
"mcpServers": {
"face": {"url": "https://face.mcp.acedata.cloud/mcp"}
}
}
VS Code-specific workspace config (OAuth):
{
"servers": {
"face": {"type": "http", "url": "https://face.mcp.acedata.cloud/mcp"}
}
}
Bearer . An API Key / API Token field expects this raw value; only a manually configured HTTP Authorization header needs the Bearer prefix. A platform-... account-management token cannot replace a generation API key.

Save the key in the client's credential store or the environment variable shown below. Never put it in a prompt, shared workflow, screenshot, or Git commit. If authentication fails, check the full copied value, application/service access, expiration, usage limit, and balance before creating another key.
A fixed Bearer header bypasses OAuth. If the header is invalid, remove it before trying browser sign-in; keep the saved credential private.
For Claude Code, the shell expands the token when you add the server; treat the saved user MCP config as a secret:
export ACEDATACLOUD_API_TOKEN='YOUR_API_TOKEN'
claude mcp add --transport http --scope user face https://face.mcp.acedata.cloud/mcp \
--header "Authorization: Bearer $ACEDATACLOUD_API_TOKEN"
For a Claude Code project config, put a variable reference in <project>/.mcp.json and set that variable in the environment that launches Claude Code:
{
"mcpServers": {
"face": {
"type": "http",
"url": "https://face.mcp.acedata.cloud/mcp",
"headers": {"Authorization": "Bearer ${ACEDATACLOUD_API_TOKEN}"}
}
}
}
Cursor uses a different environment-variable syntax in ~/.cursor/mcp.json or an uncommitted project config:
{
"mcpServers": {
"face": {
"url": "https://face.mcp.acedata.cloud/mcp",
"headers": {"Authorization": "Bearer ${env:ACEDATACLOUD_API_TOKEN}"}
}
}
}
In VS Code, run MCP: Open User Configuration and merge this server plus its masked input; ${input:...} is for VS Code's user/workspace format and is not portable to the Agent Host .mcp.json format:
{
"inputs": [
{"id": "acedata-face-token", "type": "promptString", "description": "AceDataCloud API token", "password": true}
],
"servers": {
"face": {
"type": "http",
"url": "https://face.mcp.acedata.cloud/mcp",
"headers": {"Authorization": "Bearer ${input:acedata-face-token}"}
}
}
}
For Cline, use its MCP configuration UI or CLI file ~/.cline/data/settings/cline_mcp_settings.json; its remote transport value is streamableHttp. For JetBrains AI Assistant, add a remote URL from Settings → Tools → AI Assistant → Model Context Protocol (MCP). For Zed, use a context_servers entry with the URL only for OAuth or add a local Bearer header. These clients have different configuration schemas; follow their current UI rather than copying another client's JSON. Cline · JetBrains · Zed.
Install the package and give the local process an API token:
python -m pip install mcp-face-transform
export ACEDATACLOUD_API_TOKEN='YOUR_API_TOKEN'
mcp-face-transform
For Claude Desktop local MCP, merge this entry into the file opened by its developer settings (~/Library/Application Support/Claude/claude_desktop_config.json on macOS). uvx requires uv on PATH:
{
"mcpServers": {
"face": {
"command": "uvx",
"args": ["mcp-face-transform"],
"env": {"ACEDATACLOUD_API_TOKEN": "YOUR_API_TOKEN"}
}
}
}
Keep this user-level file private. Self-hosted HTTP uses mcp-face-transform --transport http --port 8000; expose it only with suitable network and TLS controls. Local execution still calls the AceDataCloud API.
https://face.mcp.acedata.cloud/health returning {"status":"ok"} checks endpoint reachability only.face_get_usage_guide is a reference tool; it does not verify downstream API access or balance.For 401, check which auth route the client used and whether the token or OAuth session is valid. A 403 may mean an account permission or content moderation failure; read the returned error. Insufficient balance and downstream service failures need their own diagnosis. A listed tool or submitted task does not prove a successful result.
| Tool | Description |
|---|---|
face_detect_keypoints | Detect 90+ keypoints per face (multi-face supported). |
face_beautify | Smoothing, whitening, face slimming, and eye enlarging. |
face_change_age | Age or de-age a portrait. |
face_change_gender | Swap perceived facial gender characteristics. |
face_swap | Move a source face onto a target image (with optional async webhook). |
face_cartoonize | Render a portrait in cartoon / animated style. |
face_detect_liveness | Distinguish a live capture from a printed / screen photo. |
face_get_usage_guide | Concise client-side tool usage reference. |
"Detect all faces in https://example.com/group.jpg and return their keypoints."
→ face_detect_keypoints(image_url="https://example.com/group.jpg")
"Lighten and smooth my portrait."
→ face_beautify(image_url="https://example.com/me.jpg", smoothing=15, whitening=25)
"Replace the face in the scene with the headshot."
→ face_swap(
source_image_url="https://example.com/headshot.jpg",
target_image_url="https://example.com/scene.jpg",
)
{
"mcpServers": {
"face-transform": {
"command": "uvx",
"args": ["mcp-face-transform"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_api_token_here"
}
}
}
}
Or use the hosted endpoint with bearer auth:
{
"mcpServers": {
"face-transform": {
"url": "https://face.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer your_api_token_here"
}
}
}
}
pip install -e ".[dev,test]"
pytest --cov=core --cov=tools
ruff check .
MIT — see LICENSE.