@axsept/mcp-server
v0.1.0-beta.0
Published
Reference Node.js MCP server for the SkillChain integration protocol. Captures human-AI interaction events from Claude Code (and other MCP clients) and ships them to the SkillChain BFF.
Maintainers
Readme
@axsept/mcp-server
The reference Node.js MCP server for the SkillChain integration protocol. Captures human–AI interaction events from Claude Code (or any MCP-aware client) and ships them to the SkillChain BFF.
This package is the canonical rich-signal reference implementation per §5 of the integration protocol. It exposes three MCP tools that the host LLM can invoke during a conversation to record the skills the user demonstrated.
Install
When used as part of the skillchain Claude Code plugin, this server is launched automatically via npx. To install standalone for development or non-plugin use:
npm install -g @axsept/mcp-serverConfigure
Set the SkillChain API key as an environment variable (or via Claude Code plugin config):
export SKILLCHAIN_API_KEY="sk_user_..."
# optional — defaults to https://skillchain.tech
export SKILLCHAIN_API_BASE_URL="https://staging.skillchain.tech"
# optional — when set, validates events but does not POST to BFF (for local testing)
export SKILLCHAIN_DRY_RUN="1"Run
skillchain-mcp-server # starts the MCP server on stdioOr directly via npx:
SKILLCHAIN_API_KEY=sk_user_... npx @axsept/mcp-serverTools
log_activity
Record a discrete activity the user demonstrated a skill on. Called once per meaningful work unit — not once per message.
Input fields (Zod-validated, see LogActivityInputSchema):
description(required) — short prose describing what the user didskills(required, 1–50) — one or more skills withname,proficiency(0–1), optionaltaxonomy_node_id,evidence_snippethuman_contribution(optional) —prompt_quality,directing_pattern,iteration_count,accepted_unchanged,modifications_made,rejections— see protocol §2 for definitionstools_used(optional) — up to 20 tool/framework/language names
record_session_summary
Record a session-wide summary at natural session boundaries (long pauses, topic changes, completion of significant work). Captures the user's directing/orchestration skill across the whole session.
Input fields:
summary(required) — session-level proseskills_demonstrated(required, 1–50) — skill namesnotable_decisions(optional) — short descriptions of decisions madesession_duration_minutes(optional)
get_profile_snapshot
Read-only. Returns the user's current SkillChain signature (VDS, CSS, top skills, freshness). Used by Claude to avoid re-logging the same skills repeatedly and to personalize coaching when the user asks.
What the server does
For each log_activity or record_session_summary call:
- Anonymize all text fields locally via
@axsept/anonymizer— PII patterns (emails, phone numbers, SSNs) and secret patterns (AWS keys, GitHub tokens, JWTs, etc.) are stripped before any network call. Skill vocabulary is preserved. - Compose a
HumanAIEventthat conforms to the published@axsept/event-schema. Includes a deterministicevent_idderived from the session ID, monotonic sequence number, and content hash — so retries dedupe at the BFF. - POST to the SkillChain BFF with
Authorization: Bearer <key>and aX-Request-Idheader. Handles429with exponential backoff (1s → 60s cap, 5 attempts), halts on401, retries5xx.
The server itself does not call any LLM. All extraction work is done by the host model (Claude) as part of the conversation, per the protocol's rich-signal contract.
License
Apache-2.0
