npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@fractary/codex-mcp

v0.2.1

Published

MCP server for Fractary Codex knowledge management

Readme

@fractary/codex-mcp-server

MCP (Model Context Protocol) server for Fractary Codex knowledge management.

Overview

This package provides a standalone MCP server that exposes Fractary Codex functionality as tools for AI agents and applications. It supports both stdio and HTTP/SSE transports for integration with Claude Code, LangChain, and other MCP-compatible clients.

Installation

Global Installation

npm install -g @fractary/codex-mcp-server

Direct Usage (npx)

npx @fractary/codex-mcp-server

As Dependency

npm install @fractary/codex-mcp-server

Usage

Claude Code Integration

Add to your .claude/settings.json:

{
  "mcpServers": {
    "fractary-codex": {
      "command": "npx",
      "args": ["-y", "@fractary/codex-mcp-server", "--config", ".fractary/codex.yaml"]
    }
  }
}

Stdio Mode (Default)

fractary-codex-mcp --config .fractary/codex.yaml

The server communicates via stdin/stdout using the MCP protocol.

HTTP Mode

fractary-codex-mcp --port 3000 --host localhost

The server exposes an SSE (Server-Sent Events) endpoint for HTTP clients.

Configuration

Create a .fractary/codex.yaml configuration file:

cache:
  dir: .codex-cache
  maxMemorySize: 104857600  # 100 MB
  defaultTtl: 3600          # 1 hour

storage:
  providers:
    - type: local
      basePath: ./knowledge
    - type: github
      token: ${GITHUB_TOKEN}

Environment Variables

  • FRACTARY_CONFIG: Path to configuration file (default: .fractary/codex.yaml)
  • GITHUB_TOKEN: GitHub personal access token for GitHub storage provider

Available Tools

The MCP server exposes the following tools:

codex_document_fetch

Fetch a document from the Codex knowledge base by URI.

{
  "uri": "codex://org/project/path/to/file.md",
  "branch": "main",
  "noCache": false
}

codex_search

Search for documents in the knowledge base.

{
  "query": "authentication",
  "org": "fractary",
  "project": "codex",
  "limit": 10,
  "type": "docs"
}

codex_cache_list

List cached documents.

{
  "org": "fractary",
  "project": "codex",
  "includeExpired": false
}

codex_cache_clear

Clear cached documents by pattern.

{
  "pattern": "docs/**"
}

Architecture

The MCP server bridges the Codex SDK with the MCP protocol:

┌─────────────────────────────────────┐
│   MCP Client (Claude Code, etc.)   │
└─────────────┬───────────────────────┘
              │ JSON-RPC (stdio/HTTP)
              ▼
┌─────────────────────────────────────┐
│  @fractary/codex-mcp-server         │
│  ┌───────────────────────────────┐  │
│  │ MCP Protocol Handler          │  │
│  │   (StdioTransport / SSE)     │  │
│  └─────────────┬─────────────────┘  │
│                │                     │
│  ┌─────────────▼─────────────────┐  │
│  │ Tool Registration Bridge      │  │
│  │   (registerCodexTools)        │  │
│  └─────────────┬─────────────────┘  │
└────────────────┼─────────────────────┘
                 │
                 ▼
┌─────────────────────────────────────┐
│       @fractary/codex (SDK)         │
│  ┌─────────┐  ┌──────────────┐     │
│  │ Cache   │  │  Storage     │     │
│  │ Manager │  │  Manager     │     │
│  └─────────┘  └──────────────┘     │
└─────────────────────────────────────┘

Development

Build

npm run build

Watch Mode

npm run dev

Type Check

npm run typecheck

Testing

npm test
npm run test:watch
npm run test:coverage

Linting

npm run lint
npm run format

Programmatic Usage

You can also use the MCP server programmatically:

import { Server } from '@modelcontextprotocol/sdk/server/index.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
import { CacheManager, StorageManager } from '@fractary/codex'
import { registerCodexTools } from '@fractary/codex-mcp-server'

// Initialize SDK managers
const storage = StorageManager.create({ /* config */ })
const cache = CacheManager.create({ /* config */ })
cache.setStorageManager(storage)

// Create MCP server
const server = new Server(
  { name: 'fractary-codex', version: '0.1.0' },
  { capabilities: { tools: {}, resources: {} } }
)

// Register Codex tools
registerCodexTools(server, { cache, storage })

// Connect transport
const transport = new StdioServerTransport()
await server.connect(transport)

Migration from SDK-Embedded MCP

If you were using the MCP server from @fractary/codex (versions ≤0.1.x), update your configuration:

Before:

{
  "mcpServers": {
    "fractary-codex": {
      "command": "npx",
      "args": ["@fractary/codex", "mcp", "--config", ".fractary/codex.yaml"]
    }
  }
}

After:

{
  "mcpServers": {
    "fractary-codex": {
      "command": "npx",
      "args": ["-y", "@fractary/codex-mcp-server", "--config", ".fractary/codex.yaml"]
    }
  }
}

The functionality remains identical; only the package name has changed.

License

MIT

Related Packages

Documentation

Links