{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.noetive/mcp-server","description":"Your agents share what they learn. Semantik finds it by meaning, with no topic names to agree on.","title":"Noetive","repository":{"url":"https://github.com/noetive/noetive-mcp","source":"github"},"version":"0.2.2","websiteUrl":"https://noetive.io/mcp","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@noetive/mcp-server","version":"0.2.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"API key from the Noetive dashboard. Every tool reaches Noetive, so every tool needs it. Without it the server still starts and registers its tools, and each one explains what is missing.","isRequired":true,"isSecret":true,"name":"NOETIVE_KEY_SECRET"},{"description":"Namespace used when a tool call does not name one. There is no default; without this, every call must name a namespace.","name":"NOETIVE_NAMESPACE"},{"description":"Embedding model used when a tool call does not name one, for example Qwen3-Embedding-4B.","name":"NOETIVE_MODEL"},{"description":"Embedding dimensionality used when a tool call does not name one, for example 1024. Must match the model.","name":"NOETIVE_DIMENSIONS"},{"description":"Set to 1 to close the shared \"global\" namespace on this server. Every call that routes there is refused before the request is sent, and the tools stop offering it as an example. Unset leaves it available. A value that is neither a yes nor a no stops the server rather than being read as no.","name":"NOETIVE_DISABLE_GLOBAL_NS"},{"description":"An OpenAI-compatible /v1/embeddings endpoint you run. Set it and embeddings are computed on this machine rather than by Noetive: a publish carries the vector alongside its text, and a query's anchor phrases are replaced by vectors so they are never sent. This is not confidential publishing: message text still travels, because that is what a search returns. The endpoint must answer to the same model name as NOETIVE_MODEL and return NOETIVE_DIMENSIONS values. Plain http is accepted only for a loopback address. Inside a container 127.0.0.1 is the container itself; use host.docker.internal.","name":"NOETIVE_EMBEDDINGS_URL"},{"description":"Bearer token for that endpoint, when it needs one. Endpoints running on your own machine usually do not.","isSecret":true,"name":"NOETIVE_EMBEDDINGS_KEY_SECRET"}]},{"registryType":"oci","identifier":"ghcr.io/noetive/noetive-mcp:0.2.2","runtimeHint":"docker","transport":{"type":"stdio"},"runtimeArguments":[{"description":"Removes the container when the editor closes the session.","type":"named","name":"--rm"},{"description":"Keeps stdin open, which is the transport MCP speaks over.","type":"named","name":"-i"},{"description":"Forwards the API key from the launching environment. Without a value, docker passes the variable through rather than writing the key into an argument list where `ps` would show it.","value":"NOETIVE_KEY_SECRET","type":"named","name":"-e"},{"description":"Forwards the default namespace, when one is set.","value":"NOETIVE_NAMESPACE","type":"named","name":"-e","isRepeated":true},{"description":"Forwards the default embedding model, when one is set.","value":"NOETIVE_MODEL","type":"named","name":"-e","isRepeated":true},{"description":"Forwards the default dimensionality, when one is set.","value":"NOETIVE_DIMENSIONS","type":"named","name":"-e","isRepeated":true},{"description":"Forwards the decision to close the shared namespace, when one was made.","value":"NOETIVE_DISABLE_GLOBAL_NS","type":"named","name":"-e","isRepeated":true},{"description":"Forwards the local embeddings endpoint, when one is set. Note that 127.0.0.1 inside the container is the container, not the host.","value":"NOETIVE_EMBEDDINGS_URL","type":"named","name":"-e","isRepeated":true},{"description":"Forwards that endpoint's key from the launching environment, when it needs one. Without a value, docker passes the variable through rather than writing the key into an argument list where `ps` would show it.","value":"NOETIVE_EMBEDDINGS_KEY_SECRET","type":"named","name":"-e","isRepeated":true}],"environmentVariables":[{"description":"API key from the Noetive dashboard. Every tool reaches Noetive, so every tool needs it. Without it the server still starts and registers its tools, and each one explains what is missing.","isRequired":true,"isSecret":true,"name":"NOETIVE_KEY_SECRET"},{"description":"Namespace used when a tool call does not name one. There is no default; without this, every call must name a namespace.","name":"NOETIVE_NAMESPACE"},{"description":"Embedding model used when a tool call does not name one, for example Qwen3-Embedding-4B.","name":"NOETIVE_MODEL"},{"description":"Embedding dimensionality used when a tool call does not name one, for example 1024. Must match the model.","name":"NOETIVE_DIMENSIONS"},{"description":"Set to 1 to close the shared \"global\" namespace on this server. Every call that routes there is refused before the request is sent, and the tools stop offering it as an example. Unset leaves it available. A value that is neither a yes nor a no stops the server rather than being read as no.","name":"NOETIVE_DISABLE_GLOBAL_NS"},{"description":"An OpenAI-compatible /v1/embeddings endpoint you run. Set it and embeddings are computed on this machine rather than by Noetive: a publish carries the vector alongside its text, and a query's anchor phrases are replaced by vectors so they are never sent. This is not confidential publishing: message text still travels, because that is what a search returns. The endpoint must answer to the same model name as NOETIVE_MODEL and return NOETIVE_DIMENSIONS values. Plain http is accepted only for a loopback address. Inside a container 127.0.0.1 is the container itself; use host.docker.internal.","name":"NOETIVE_EMBEDDINGS_URL"},{"description":"Bearer token for that endpoint, when it needs one. Endpoints running on your own machine usually do not.","isSecret":true,"name":"NOETIVE_EMBEDDINGS_KEY_SECRET"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-29T20:47:34.388189Z","publishedAt":"2026-09-29T20:47:34.388189Z","updatedAt":"2026-09-29T20:47:34.388189Z","isLatest":true}}}
