Seta MCP

Seta MCP

Enables Salesforce developers to create code and configuration using local documentation, with optional semantic search.

Category
Visit Server

README

Seta MCP - Up-to-date Local Docs for Coding

Assist Salesforce developers to create code and configuration! This is a MCP server that you can run locally or host remotely.

Designed to fetch documentation from your local file system, giving you complete control over the context provided to your AI assistant.

Inspired by context7 - but this application uses local documentation library.

Why use this?

Seta MCP server consists of three primary components:

  • MCP server code (this repository)
  • Open / public, internal or proprietary documentation for Apex, LWC, configuration etc.
  • NEW: Semantic search indexer for intelligent document discovery

Seta MCP helps you to -

  • Work entirely offline.
  • Have fine-grained control over the exact documentation versions and content.
  • Quickly iterate on documentation and have it immediately available to your LLM.
  • NEW: Find relevant documentation using semantic search, even when exact keywords don't match.

šŸ’” How It Works?

This MCP server reads documentation from a local directory structure you define.

  1. Set LOCAL_DOCS_PATH: You specify a root directory for your documentation via the LOCAL_DOCS_PATH environment variable.
  2. Organize Libraries: Inside LOCAL_DOCS_PATH, each library or documentation set should reside in its own subdirectory.
  3. Enhanced manifest.json: Each library subdirectory must contain a manifest.json file with rich metadata including difficulty levels, use cases, learning paths, and semantic groups.
  4. Optional Semantic Indexing: Run seta-indexer to create a vector database for semantic search capabilities.

When you prompt your LLM (e.g., in VSCode) with use latest Apex docs, use seta or just reference any of the below tools in the prompt:

  • The get-library-id tool searches the manifest.json files in your LOCAL_DOCS_PATH to find matching libraries.
  • The get-library-docs tool then fetches the content of the specified document file from your local file system.

šŸ› ļø Getting Started

Requirements

  • Node.js >= v18.0.0
  • VSCode, Cursor, Windsurf, Claude Desktop, or another MCP Client.
  • A local directory containing your documentation, structured as described below.
  • The LOCAL_DOCS_PATH environment variable must be set to point to this directory.

Local Documentation Structure

Your LOCAL_DOCS_PATH should point to a root directory. Inside this, each library has its own folder:

<your_LOCAL_DOCS_PATH>/
ā”œā”€ā”€ my-awesome-lib/
│   ā”œā”€ā”€ manifest.json
│   ā”œā”€ā”€ main_guide.md
│   ā”œā”€ā”€ .seta_lancedb/          # Created by seta-indexer (optional)
│   └── topics/
│       └── report.md
│       └── advanced_reports.txt
└── another-tool/
    ā”œā”€ā”€ manifest.json
    └── quick_start.md

Enhanced manifest.json Format

Each library directory (e.g., my-awesome-lib/) must contain a manifest.json file in the following enhanced format:

{
  "name": "My Awesome Library",
  "description": "A brief description of what this library does.",
  "version": "2.1.0",
  "default_doc": "main_guide.md", // File to use if no topic is specified
  "topics": [
    {
      "name": "report",
      "file": "report.md",
      "tags": ["report"],
      "related": ["advanced"],
      "prerequisites": [],
      "leads_to": ["advanced"],
      "difficulty": "beginner",
      "use_cases": ["basic reporting", "data visualization"],
      "code_patterns": ["SOQL queries", "report types"]
    },
    {
      "name": "advanced",
      "file": "topics/advanced_reports.txt",
      "tags": ["advanced"],
      "related": ["report"],
      "prerequisites": ["report"],
      "leads_to": [],
      "difficulty": "advanced",
      "use_cases": ["complex analytics", "custom report types"],
      "code_patterns": ["dynamic SOQL", "custom report builders"]
    }
  ],
  "semantic_groups": {
    "fundamentals": ["report"],
    "advanced_features": ["advanced"]
  },
  "learning_paths": {
    "beginner": ["report"],
    "expert": ["report", "advanced"]
  },
  "totalSnippets": 25 // Optional: for display purposes
}

Enhanced topic properties:

  • prerequisites (array of strings, optional): Topics that should be understood first
  • leads_to (array of strings, optional): Topics that naturally follow this one
  • difficulty (string, optional): "beginner", "intermediate", or "advanced"
  • use_cases (array of strings, optional): Practical applications of this topic
  • code_patterns (array of strings, optional): Code patterns or techniques covered

New library-level properties:

  • semantic_groups (object, optional): Named collections of related topics
  • learning_paths (object, optional): Suggested sequences of topics for different skill levels

How enhanced topic lookup works:

  • When searching, the server matches your query against library name, description, topic names, tags, use_cases, and code_patterns.
  • When fetching documentation for a topic, the server automatically includes context from prerequisites, related topics, and next steps.
  • You can request entire semantic groups or learning paths by name.

šŸ” Semantic Search with seta-indexer

Development

Clone the project and install dependencies:

npm i

Build (assuming main.ts is in the root and tsconfig.json is configured for outDir: "./dist" and rootDir: "./"):

npm run build

This will compile main.ts (and files in lib/ and indexer/) to dist/main.js and dist/indexer/cli.js.

Local Configuration Example (for development)

To run your local development version with an MCP client like Cursor:

{
  "mcpServers": {
    "seta_dev": {
      "command": "npx",
      "args": ["tsx", "/path/to/your/project/dist/main.js"],
      "env": {
        "LOCAL_DOCS_PATH": "/absolute/path/to/your/test_documentation_root", // Essential for testing
        "DEFAULT_MAX_TOKENS": "5000" // Optional
      }
    }
  }
}

Testing with MCP Inspector

Ensure LOCAL_DOCS_PATH is set in your environment.

# For published version
# export LOCAL_DOCS_PATH="/path/to/your/docs"
npx -y @modelcontextprotocol/inspector npx seta-mcp@latest

Disclaimer

This project relies on the documentation you provide. The quality, accuracy, and completeness of the generated context are directly dependent on your local documentation files. Use at your own discretion and risk.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured