Skip to main content
Glama
README.md
# @niklaserik/effect-mcp

A Model Context Protocol (MCP) server dedicated to fetching the most current documentation from the Effect ecosystem.

## Purpose

This MCP server provides real-time access to Effect documentation for AI assistants and tools. It enables VS Code extensions and other MCP clients to retrieve accurate and up-to-date Effect package documentation to assist developers with questions about:

- The core `effect` package
- Ecosystem packages (`@effect/platform`, `@effect/ai`, etc.)
- Both stable and unstable Effect packages

The server intelligently detects imported Effect packages in your code and fetches the most relevant documentation to answer your queries.

## Features

- Real-time documentation access for Effect ecosystem
- Support for both stable and experimental packages
- Context-aware package detection based on imports
- Seamless integration with VS Code and other MCP-compatible clients
- Helps answer API usage questions for Effect developers

## What this server exposes

- Resources (preferred)
  - Dynamic template: `effect-docs://{libId}`
  - Completions on `{libId}` and resource listing are supported
  - Static aliases for discovery: `effect-docs://effect`, `effect-docs://@effect-platform`, etc.
  - Supported libraries (as of now):
    - `effect`
    - `@effect/platform`
    - `@effect/sql`
    - `@effect/vitest`
    - `@effect/ai`
    - `@effect/cli`
    - `@effect/cluster`
    - `@effect/rpc`
    - `@effect/typeclass`
- Tools (for compatibility)
  - `effect-documentation`: fetch docs for selected libraries and return concatenated markdown
  - `effect-doc-links`: return plain URIs to the resources above so clients can follow them

Caching & Retry

- In-memory TTL cache (~10 minutes) to avoid refetching unchanged docs.
- Lightweight retry with small backoff on transient fetch errors.

## Installation

```bash
pnpm add @niklaserik/effect-mcp
```

## Usage

For usage in VS Code or other MCP clients, refer to the client's documentation for adding custom MCP servers.

Quick test locally:

```bash
pnpm install
pnpm build
node dist/index.js # stdio transport
```

Then connect with an MCP client (e.g., MCP Inspector) over stdio and try:

- List resources and read `effect-docs://effect`
- Call tool `effect-doc-links` with `{ "libraries": ["effect", "@effect/platform"] }`

Initialization instructions

- The server publishes short usage instructions via MCP initialize for clients that display them.

## Development

```bash
# Install dependencies
pnpm install

# Build the project
pnpm build

# Run in development mode with auto-reload
pnpm dev
```

Notes:

- Built with `@modelcontextprotocol/sdk@^1.17.4` using the modern `registerResource`/`registerTool` APIs.
- Transport: stdio by default; can be adapted to Streamable HTTP if needed.

## License

MIT

TDQS

A3.7/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one fetches and returns the actual documentation content, while the other returns resource links for the client to load. There is no overlap or ambiguity between them.

Naming Consistency5/5

Both tools follow the same 'effect-[noun]' naming pattern with descriptive, hyphenated names. The convention is consistent and predictable.

Tool Count3/5

With only two tools, the server feels thin and borderline for a documentation-focused MCP. The tools are useful, but the count is at the low end of what is considered appropriate.

Completeness4/5

The server covers the two primary operations for documentation access: fetching content and obtaining links. However, it lacks discovery tools (e.g., listing available libraries) which represents a minor gap depending on the client's needs.

Maintenance

ActivityInactive
ResponsivenessNo issues