Shared ONNX/GGUF embedding server for the n24q02m MCP ecosystem
Project description
mcp-core
Sister projects from n24q02m (click to expand)
| Project | Tagline | Tag |
|---|---|---|
| better-code-review-graph | Knowledge graph for token-efficient code reviews -- fixed search, configurabl... | MCP |
| better-email-mcp | IMAP/SMTP email server for AI agents -- 6 composite tools with multi-account ... | MCP |
| better-godot-mcp | Composite MCP server for Godot Engine -- 17 mega-tools for AI-assisted game d... | MCP |
| better-notion-mcp | Markdown-first Notion API server for AI agents -- 10 composite tools replacin... | MCP |
| better-telegram-mcp | MCP server for Telegram with dual-mode support: Bot API (httpx) for quick bot... | MCP |
| claude-plugins | Full documentation: mcp.n24q02m.com — unified docs for all 8 servers + the mc... | Marketplace |
| imagine-mcp | Production-grade MCP server for image and video understanding + generation ac... | MCP |
| jules-task-archiver | Chrome Extension for bulk operations on Jules tasks via batchexecute API -- a... | Tooling |
| mcp-core | Unified MCP Streamable HTTP 2025-11-25 transport, OAuth 2.1 Authorization Ser... | MCP |
| mnemo-mcp | Persistent AI memory with hybrid search and embedded sync. Open, free, unlimi... | MCP |
| qwen3-embed | Lightweight Qwen3 text embedding and reranking via ONNX Runtime and GGUF | Library |
| skret | Secrets without the server. | CLI |
| web-core | Shared web infrastructure package for search, scraping, HTTP security, and st... | Library |
| wet-mcp | Open-source MCP Server for web search, content extraction, library docs & mul... | MCP |
Table of contents
- Packages
- What you get
- Quick start (Python)
- Quick start (TypeScript)
- Documentation
- Development
- License
Unified MCP Streamable HTTP 2025-11-25 transport, OAuth 2.1 Authorization Server, lifecycle management, install automation, and shared embedding daemon for the n24q02m MCP ecosystem.
mcp-core is the functional successor to the archived
mcp-relay-core. All crypto,
storage, OAuth, relay, and schema modules from mcp-relay-core ship under
the same paths in mcp-core (1:1 superset), so downstream MCP servers can
migrate with a pure import + dependency rename. See
docs/migration-from-mcp-relay-core.md
for the rename table.
Packages
| Package | Language | Registry | Install |
|---|---|---|---|
packages/core-py |
Python 3.13 | PyPI: n24q02m-mcp-core |
pip install n24q02m-mcp-core |
packages/core-ts |
TypeScript / Node 24 | npm: @n24q02m/mcp-core |
bun add @n24q02m/mcp-core |
packages/embedding-daemon |
Python 3.13 | PyPI: mcp-embedding-daemon |
pip install mcp-embedding-daemon |
All three packages share the same version (semantic-release.toml bumps both
Python pyproject.toml files plus the npm package.json in lockstep).
What you get
n24q02m-mcp-core (Python) and @n24q02m/mcp-core (TypeScript)
Identical public API in both languages:
crypto/— ECDH P-256, AES-256-GCM, HKDF-SHA256 primitives. Cross-language test vectors guarantee Python and TypeScript produce the same ciphertext for the same input.storage/— encrypted config file (config.enc) backed by PBKDF2 600k + machine-id key derivation, plus session lock files and config resolver helpers.oauth/— OAuth 2.1 Authorization Server building blocks:JWTIssuer(RS256),OAuthProvider(PKCE flow + relay session integration),SqliteUserStorefor multi-user mode.relay/—RelaySession,create_session,poll_for_result,send_messageplus the EFF Diceware wordlist for passphrase generation.schema/—RelayConfigSchemaTypedDict that downstream servers use to declare their config form.transport/—StreamableHTTPServerwrapper around FastMCP /@modelcontextprotocol/sdkStreamable HTTP transport, plusOAuthMiddleware(RFC 6750 + RFC 9728 compliant Bearer validation).lifecycle/—LifecycleLockcross-platform file lock that prevents two server instances from binding the same(name, port)pair.install/(Python only) —AgentInstallerthat writes MCP server entries into Claude Code, Cursor, Codex, Windsurf, and OpenCode config files.
mcp-embedding-daemon
FastAPI HTTP server scaffold for the upcoming shared ONNX/GGUF embedding backend. Currently exposes:
GET /health— returns{status, version}POST /embed— returns 501 with a roadmap link (backend wiring lands in the next release)POST /rerank— returns 501 with a roadmap link
CLI entry point: mcp-embedding-daemon --host 127.0.0.1 --port 9800.
Quick start (Python)
from mcp_core import RelaySession, create_session, decrypt
from mcp_core.transport.streamable_http import StreamableHTTPServer
from mcp_core.oauth import JWTIssuer
from mcp_core.transport.oauth_middleware import OAuthMiddleware
from fastmcp import FastMCP
mcp = FastMCP("my-server")
issuer = JWTIssuer("my-server")
issuer # Use issuer.issue_access_token(sub) / verify_access_token(token)
middleware = [OAuthMiddleware(issuer=issuer, resource_metadata_url="http://127.0.0.1:9876/.well-known/oauth-protected-resource")]
server = StreamableHTTPServer(mcp, port=9876, middleware=middleware)
server.run()
Quick start (TypeScript)
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
import { JWTIssuer } from '@n24q02m/mcp-core/oauth'
import { OAuthMiddleware, StreamableHTTPServer } from '@n24q02m/mcp-core/transport'
const server = new McpServer({ name: 'my-server', version: '0.0.0' })
const issuer = new JWTIssuer('my-server')
await issuer.init()
const middleware = new OAuthMiddleware({
jwtIssuer: issuer,
resourceMetadataUrl: 'http://127.0.0.1:9876/.well-known/oauth-protected-resource'
})
const http = new StreamableHTTPServer({ server, port: 9876, oauthMiddleware: middleware })
await http.connect()
// Then mount http.handleRequest(req, res) on your http.Server / Express / Hono.
Documentation
Full docs at mcp.n24q02m.com/servers/mcp-core/ (Foundation library section in the MCP n24q02m unified docs site):
- Architecture -- transport, OAuth AS, lifecycle, multi-user primitives
- Trust model -- threat model + key-handling guarantees
- Migration -- breaking-change history and upgrade paths from
mcp-relay-core - Shared services -- embedding daemon + ancillary docker-compose stack
Source of truth lives in n24q02m/claude-plugins/plugins/mcp-core/. Edit there; this repo's docs/ directory is intentionally minimal post-migration.
Development
mise run setup # install runtimes + deps + pre-commit hooks
bun install # root TypeScript workspace install
# Python (per package)
cd packages/core-py
uv sync --group dev
uv run pytest
uv run ty check
uv run ruff check .
# TypeScript
cd packages/core-ts
bun run test
bun run check
bun run build
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_embedding_daemon-1.17.1.tar.gz.
File metadata
- Download URL: mcp_embedding_daemon-1.17.1.tar.gz
- Upload date:
- Size: 26.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f9873e57611478a5cc7002994b784f24e029bbee255ff06dae3ed9aa600dbdd
|
|
| MD5 |
eda23c1578b7a7069165013a358418d6
|
|
| BLAKE2b-256 |
db47751bdea7e90e467dfd932c976d846d433c67d7b8de54ac7cce8db4ec2b70
|
File details
Details for the file mcp_embedding_daemon-1.17.1-py3-none-any.whl.
File metadata
- Download URL: mcp_embedding_daemon-1.17.1-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2024a7fab9d29aa3a4c1291a881b33c1f8070212128f264a693a49eb0915132
|
|
| MD5 |
82e0f4cc2c043ba60a173cf723dd25d3
|
|
| BLAKE2b-256 |
1b626fd6c5b4b1b5b6cb0774876461d778e322efcb00f8394b77041bd3e45001
|