Inoyu MCP Server for Apache Unomi Profile Management
Manage Apache Unomi customer profiles using the MCP server to retrieve and update CDP data via API.
npx -y @sergehuber/inoyu-mcp-unomi-serverOverview
The Inoyu MCP Server for Apache Unomi Profile Management implements a Model Context Protocol (MCP) endpoint that lets you retrieve, update, and manage customer profiles stored in an Apache Unomi instance. It acts as a lightweight bridge between MCP-aware clients and Unomi’s REST APIs, exposing standardized MCP operations for reading and writing CDP (Customer Data Platform) profile data and storing associated files.
This server is useful when you need to integrate Unomi into MCP-compatible workflows, provide a unified API for profile operations, or attach file objects to profiles (e.g., consent documents, scanned IDs, or enrichment artifacts). It simplifies common profile tasks — lookups, merges, partial updates, and file storage — while delegating persistence to Unomi and file storage to a configured storage backend.
Features
- Exposes MCP-style endpoints to read and write Apache Unomi profiles
- CRUD operations on profiles via MCP JSON payloads
- File upload / download linked to profile records (files-storage)
- Configurable connection to Apache Unomi (URL, credentials, TLS)
- Pluggable storage path for profile-related files (local or mounted volume)
- Logging and basic error translation between MCP and Unomi responses
- Designed for use in CDP integration pipelines and privacy workflows
Installation / Configuration
Prerequisites:
- Running Apache Unomi instance reachable from the MCP server
- Java 11+ (if a JAR is included) or Docker (preferred for isolation)
- Optional: writable volume for files storage
- Clone repository
- Build and run (examples)
- Using Docker (recommended)
# build image (if Dockerfile exists)
# run with environment variables and mounted storage
- Running locally (example with JAR)
# after building a jar (if provided)
- Example application config (application.yml / env variables)
unomi:
url: "http://unomi.example.local:8181"
user: "admin"
password: "secret"
mcp:
port: 8080
files:
storagePath: "/opt/inoyu/files"
Configuration table
| Environment variable / property | Purpose |
|---|---|
| UNOMI_URL / unomi.url | Base URL of the Apache Unomi instance |
| UNOMI_USER / unomi.user | Username for Unomi API (if required) |
| UNOMI_PASSWORD / unomi.password | Password for Unomi API |
| MCP_PORT / mcp.port | Port for the MCP server to listen on |
| FILES_PATH / files.storagePath | Local filesystem path for storing profile files |
Available Resources
- Source code and issues: https://github.com/sergehuber/inoyu-mcp-unomi-server
- Apache Unomi docs: consult your Unomi instance docs for REST endpoints and authentication
- MCP (Model Context Protocol): use client implementations that speak MCP to interact with this server
API Examples
Retrieve a profile (by profileId)
Update or patch a profile (partial merge)
Upload a file and link to a profile
Download a file
Error responses from Unomi are normalized to MCP-style error payloads for easier client handling.
Use Cases
- Profile enrichment pipeline: receive model context requests from an ML enrichment service, fetch the Unomi profile, append enrichment results, and persist updates back to Unomi through the MCP server.
- Consent and privacy workflows: attach consent artifacts (signed PDFs) to a profile and retrieve them when processing subject access or deletion requests.
- Frontend client integration: expose a compact MCP-facing API to internal apps that should not call Unomi directly, centralizing authentication and request shaping.
- Batch reconciliation: a background job can call the MCP server to perform controlled profile merges, ensuring merge strategies are applied consistently and files are stored alongside profiles.
Notes for Developers
- Ensure your Unomi instance allows the operations you need (read/write) and that credentials or API keys provided to the MCP server have appropriate permissions.
- For production, run the server behind a reverse proxy or API gateway and secure connections with TLS.
- Back up the files storage path and consider using network-mounted storage for HA deployments.
If you run into issues or want to extend the server (e.g., add S3-backed file storage or custom merge strategies), refer to the repository for source code and submit issues or pull requests on GitHub.