{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_htv26pb6emhc","handle":"monika-mcp","url":"https://wellknown.network/agents/monika-mcp","links":{"self":"https://wellknown.network/agents/monika-mcp/record.json","html":"https://wellknown.network/agents/monika-mcp","markdown":"https://wellknown.network/agents/monika-mcp/record.md","api":"https://wellknown.network/api/v1/agents/monika-mcp","status":"https://wellknown.network/api/v1/agents/monika-mcp/status","claim":"https://wellknown.network/agents/monika-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/monika-mcp/claim.json","badge":"https://wellknown.network/agents/monika-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/monika-mcp/history","tools":"https://wellknown.network/api/v1/agents/monika-mcp/tools"},"ard":{"identifier":"urn:air::server:monika-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"monika-mcp","summary":"Authenticated MCP access to local MoniKa chat databases and a multi-instance router","description":"# MoniKa MCP\n\nThis directory provides two authenticated Streamable HTTP MCP services:\n\n- `monika-mcp`: lists chatroom databases, reports session/account and DEK availability, reads bounded decrypted message rows, and checks for messages after a Unix timestamp.\n- `monika-mcp-router`: concurrently probes several instances and routes an allow-listed read tool to a named instance.\n\nRaw DEKs never appear in MCP responses. Both services require the `monika:read` bearer-token scope. They bind to loopback by default; use a TLS reverse proxy for remote access. Plain HTTP instance URLs are rejected except on loopback.\n\n`instance_status` discloses the 40-hex Kakao profile-directory identifier as `profile_id` and the distinct 32-hex `hashed_talk_user_id` when the process scan confirms a signed-in session. Cached identity survives logout, so `account` is deliberately `null` for signed-out, interstitial, candidate, and unknown states. The response includes `observed_at` so callers can judge freshness.\n\n## Install\n\nInstall the released package from PyPI:\n\n```powershell\nuv tool install monika-mcp\nmonika-mcp\n```\n\nRun the router instead with `monika-mcp-router`. To work from a source checkout:\n\n```powershell\nuv sync --all-packages\nuv run --package monika-mcp monika-mcp\n```\n\nCreate an opaque token, then configure its SHA-256 digest (not the token itself):\n\n```powershell\n$token = python -c \"import secrets; print(secrets.token_urlsafe(32))\"\n$digest = python -c \"import hashlib,sys; print(hashlib.sha256(sys.argv[1].encode()).hexdigest())\" $token\n$env:MONIKA_MCP_TOKENS_JSON = '{\"' + $digest + '\":{\"client_id\":\"local-client\",\"scopes\":[\"monika:read\"],\"expires_at\":1893456000}}'\n```\n\nFor an instance, set `MONIKA_USER_DIR` and `MONIKA_MCP_ISSUER_URL`; optionally set `MONIKA_CACHE_DB` and `MONIKA_MCP_PUBLIC_URL`, then run `monika-mcp`. The issuer is mandatory so a deployment cannot accidentally advertise a fake authorization server.\n\nFor the router, copy `instances.example.json` outside the repo…","publisher":null,"homepage":"https://github.com/maxswjeon/MoniKa","repository":"https://github.com/maxswjeon/MoniKa","version":"0.1.1","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:monika-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":0.871,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"}],"categories":["dev","security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"monika-mcp","registry":"pypi","observedAt":"2026-11-09T20:24:09.731Z","publishedAt":"2026-08-29T03:15:58.987109Z","latestVersion":"0.1.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"monika-mcp","url":"https://pypi.org/project/monika-mcp/","firstSeenAt":"2026-09-10T06:23:43.726Z","fetchedAt":"2026-11-09T20:22:38.331Z","normalizedAt":"2026-11-09T20:22:38.331Z"}]},"firstSeenAt":"2026-09-10T06:23:43.726Z","updatedAt":"2026-11-09T20:24:09.731Z"}