Enterprise review
MisakaNet — what a security or procurement reviewer needs, and what does not exist yet
This page exists for one reader: the person who has to say yes or no to putting MisakaNet in front of a team. It is a router to primary evidence, not a sales page — every factual claim below links to the file or the code that carries it, and the section on what is missing is deliberately as prominent as the rest. The detailed version, including the per-MDM deployment recipes, is docs/maintainer/enterprise-deployment.md.
1. What runs on the endpoint, and what leaves the machine
| Question | Answer |
|---|---|
| Are there outbound connections? | Two, and only two: the npm registry (can point at an internal mirror) and HTTPS requests to
https://misakanet.org/mcp. |
| What business data leaves the host? | The search query text — in practice a fragment of an error message. That is the only thing the product sends. No hostname, username, IP, file contents or environment variables are transmitted. |
| Can registration be avoided entirely? | Yes. --no-register sends no registration request and leaves no credential file
on the machine. |
| Is there a fully offline form? | Yes, with a caveat: the corpus can run entirely locally over stdio
(python3 scripts/mcp_server.py against a clone). That form gets no server-side
updates and no reuse evidence. See §3. |
| Does it install a service or open a port? | No. The installer writes a config entry and a prompt block into each assistant's own
configuration format and backs the original up as *.misakanet.bak. No daemon, no
listening socket, no system directory, no administrator rights. |
2. Credentials, retention and rate limits
- No account is required. Reading lessons is anonymous and unlimited; there is no per-day read quota to negotiate.
- The limit that does exist is a burst window, not a quota: 20 reads per 60
seconds from one address, and the error message says so. It exists to stop scraping, not to
meter use. (Source of truth:
workers/register-proxy-sw.js,
READ_BURST_LIMIT/READ_BURST_WINDOW_SECONDS.) - Optional registration issues an anonymous node identifier and a token with a 30-day lifetime. Tokens are revocable only by deletion — there is no revocation API, and that is written down rather than implied.
- What is retained, and for how long, is stated in the privacy policy: zero-result search queries (~90 days), coarse per-day counters (no per-request analytics logs), optional node records (30 days), and email intake if you email the project. There are no other processors than the ones listed there.
3. Boundaries we will not let you hear as something else
The hosted HTTP endpoint has no self-hosted form. misakanet.org is
a single managed deployment; this repository does not provide a path to deploy it inside your own
network. The corpus can run locally, but that is a different thing from self-hosting the
service, and a procurement conversation should not treat the two as interchangeable.
- No organisation-level quota, billing view or per-tenant event export exists. The service has no tenant dimension at all.
- No compliance certifications. There is no SOC 2, ISO 27001, HIPAA, FedRAMP or DPA, and no sub-processor list beyond what the privacy policy names. Nothing on this site should be read as implying otherwise.
- No availability commitment. The terms state that there is no paid tier and no service-level agreement.
- Content is indexed, not "verified". Every lesson is structurally gated on the way in (structure, DCO signature, prompt-injection scan, and a provenance check that the cited sources exist), but semantic truth is not machine-checked. The vocabulary rule and its limits are in docs/trust-semantics.md and docs/LIMITATIONS.md.
4. A paragraph you can paste into a security review
MisakaNet's client installer (@misaka-net/misakanet-setup, a public npm package,
zero runtime dependencies, Node 18+) does the following on the local machine: it writes one MCP
server entry and one prompt rule block into each AI assistant's own configuration format, and backs
up the original file as *.misakanet.bak. It installs no persistent service, opens no
listening port, writes nothing outside the assistant's config directory, requires no administrator
rights, and uploads nothing — its report goes to stdout for us to collect ourselves.
Two kinds of outbound traffic exist: (1) fetching the npm package, which can be pointed at an
internal mirror; (2) HTTPS requests to https://misakanet.org/mcp. During deployment,
--no-register removes registration entirely: no registration request is sent and no
credential file is written. At runtime, when the assistant searches for prior failure experience it
sends the query text (usually a fragment of an error message) to that endpoint —
this is the only business data that leaves the machine. No hostname, username, IP address, file
content or environment variable is sent. Credentials are an anonymous pseudonym
(client_id and agent_type are self-declared and are not treated as
evidence of identity), valid 30 days, removable at any time with --uninstall.
The installation report (YAML/JSON, schema misakanet-setup-report/1) is redacted by
design: the home directory is written as ~, tokens are reported only as
present/absent, and neither hostname nor username appears.
Known boundaries, stated plainly: the hosted HTTP endpoint does not offer a self-hosted
form, and the server has no organisation-level quota or audit export. If
the requirement is that no data leaves the network at all, the local stdio form can be used instead
(clone the repository and run python3 scripts/mcp_server.py, which searches only the
local lessons/**) — but that path is not what this installer wires up, and it forgoes
server-side updates and reuse evidence.
5. Where to look for yourself
- Data boundary and MDM deployment (GPO / Intune / Jamf / Ansible): docs/maintainer/enterprise-deployment.md — its §4 is written to be handed to a reviewer as-is.
- Retention, processors, what is and is not stored: /privacy/.
- Licence, warranty, no service-level agreement: /terms/ and LICENSE (Apache-2.0).
- Vulnerability disclosure: SECURITY.md.
- Prompt-injection threat model and its four defence layers: docs/agents/content-injection-defense.md.
- How a cited source is checked, and what that check cannot do: docs/maintainer/provenance-gate-2026-09-16.md.
- Which MCP tools exist: the table in AGENTS.md §3.2 (the tool list is maintained there and gated against the server, so it is not restated here).
- Where each secret lives and how it is rotated: docs/maintainer/credentials-and-environments.md.
6. What does not exist yet
Listed because a reviewer will ask, and because the project's own assessment says the same thing. The self-assessment in blueprint-and-strategy-review-2026-09-16.md §4.3 scores "useful to large companies and institutions" at 0.5 / 1 — potential, no delivered artefacts — and names the three gaps below.
- Data residency: not addressed beyond "the corpus is public and the service runs on the processors the privacy policy names".
- Auditability: there is no tenant or actor dimension, so no per-organisation audit trail can be produced.
- Cost visibility: no per-organisation quota or billing view.
- Compliance material: no SOC 2 / ISO 27001 / HIPAA / FedRAMP / DPA, and no third-party penetration-test report.
- Reference customers: none that may be named. The two scenarios in docs/adoption-cases.md are internal measurements and internal projections with no external company, date or contact — they are labelled as such on that page and should not be read as customer evidence.