Token导航 LogoToken导航

MCP Server · 搜索检索

Dataform MCP Server

一个为Claude Code(VS Code扩展)提供的Dataform文档语义搜索服务,支持自然语言查询、概念检索、语法参考、错误解决方案和最佳实践获取。

未说明官方级别未说明来源级核验工具 5
搜索开发工具TypeScriptClaude文档检索VS Code

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
MHooson
提供方
MHooson

工具数量

5

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Dataform MCP Server 属于搜索检索类 MCP Server,公开资料标注 5 个工具,通过传输方式未标注接入,适配 Claude、VS Code,没有现成的安装命令;接入前要先准备 API Key。

分类

搜索检索

传输方式

未说明

认证方式

API Key

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 5 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

Dataform Documentation MCP Server

A Model Context Protocol (MCP) server for Claude Code (VS Code extension) that provides access to comprehensive Dataform documentation. Get instant answers about Dataform's features, syntax, and best practices while coding.

✨ New in v0.2.0: Pre-built documentation database included! Install via npm and start using immediately - no ingestion wait required.

Features

  • Semantic Search: Search Dataform documentation using natural language queries
  • Concept Retrieval: Get detailed explanations of Dataform concepts with examples
  • Syntax Reference: Look up syntax for specific Dataform constructs
  • Error Solutions: Find solutions for common Dataform errors
  • Best Practices: Retrieve curated best practices for various use cases

Installation

From npm (Recommended)

The easiest way to install with a pre-built documentation database:

npm install -g dataform-docs-mcp

Includes: Pre-built database with all Dataform documentation (~5.5MB download, 12.6MB unpacked)

From Source (Development)

For contributors or those who want to build from source:

# Clone the repository
git clone https://github.com/mhooson/dataform-mcp.git
cd dataform-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Run initial documentation ingestion
npm run ingest

Quick Start

Prerequisites

Before starting, ensure you have:

  • Node.js 18+ installed
  • ChromaDB installed: pip install chromadb
  • ~13MB disk space for the documentation database
  • OpenAI API key required for query embeddings: Get one here

- Used to convert search queries to embeddings (~$0.0001 per query) - Also needed for updating the documentation database

Quick Start (npm installation)

The package includes a pre-built database with all Dataform documentation, so you can start using it immediately!

Step 1: Install the package

npm install -g dataform-docs-mcp

This installs the package including the pre-built documentation database (~5.5MB download, 12.6MB unpacked).

Step 2: Start ChromaDB server

# The database is included in the npm package installation
# Find the package location:
npm root -g  # Example: /usr/local/lib/node_modules

# Start ChromaDB pointing to the installed database
chroma run --path $(npm root -g)/dataform-docs-mcp/data/vectordb --port 8000

Keep this terminal running.

Step 3: Start the MCP server

dataform-mcp serve

That's it! The server is ready to use with the pre-built database.

Optional: Update the documentation later

# Only needed if you want the latest Dataform docs
export OPENAI_API_KEY=your-api-key-here
dataform-mcp update

The update command refreshes the database with the latest documentation from Google Cloud.

Step 4: Configure your IDE (see IDE Configuration section below)


Alternative: Source Installation Quick Start

For those installing from source (see Installation section above):

1. Start ChromaDB Server

The MCP server requires ChromaDB to be running:

chroma run --path ./data/vectordb --port 8000

Keep this running in a separate terminal.

Note: ChromaDB must be running on port 8000 (default) for the MCP server to connect.

2. Configure Claude Code (VS Code Extension)

For npm installation:

Create a .mcp.json file in your project root:

{
  "mcpServers": {
    "dataform-docs": {
      "command": "dataform-mcp",
      "args": ["serve"],
      "env": {
        "OPENAI_API_KEY": "your-api-key-here"
      }
    }
  }
}

Or use the CLI command:

claude mcp add --transport stdio dataform-docs \
  --env OPENAI_API_KEY=your-api-key-here \
  -- dataform-mcp serve

For development (from source):

{
  "mcpServers": {
    "dataform-docs": {
      "command": "node",
      "args": ["/absolute/path/to/dataform-mcp/dist/src/index.js"],
      "env": {
        "OPENAI_API_KEY": "your-api-key-here"
      }
    }
  }
}

Scope Options:

  • --scope local (default): Private to current project
  • --scope project: Shared with team via version control
  • --scope user: Available across all your projects

Why OpenAI API key is required: The server needs to convert your search queries into embeddings to search the vector database. This incurs minimal cost (~$0.0001 per query).

3. Start the MCP Server

For development (from source):

npm run dev

Or for production (after global install):

dataform-mcp serve

Available Tools

1. search_dataform_docs

Search Dataform documentation semantically.

Parameters:

  • query (string, required): The search query
  • max_results (number, optional): Maximum results to return (default: 5)
  • doc_type (array, optional): Filter by type: ["guide", "reference", "tutorial", "api"]
  • include_code (boolean, optional): Prioritize code examples (default: false)

Example:

{
  "query": "How do I create an incremental table?",
  "max_results": 3,
  "include_code": true
}

2. get_dataform_concept

Retrieve detailed explanation of a Dataform concept.

Parameters:

  • concept (string, required): The concept name (e.g., "assertions", "dependencies")

Example:

{
  "concept": "incremental tables"
}

3. get_syntax_reference

Get syntax reference for Dataform constructs.

Parameters:

  • construct (string, required): The construct name (e.g., "config block", "ref() function")
  • language (string, optional): "sqlx" or "javascript"

Example:

{
  "construct": "ref() function",
  "language": "sqlx"
}

4. search_error_solutions

Find solutions for Dataform errors.

Parameters:

  • error_message (string, required): The error message
  • context (string, optional): Additional context

Example:

{
  "error_message": "Cannot find module '@dataform/core'",
  "context": "Occurs when running dataform compile"
}

5. get_best_practices

Retrieve best practices for specific topics.

Parameters:

  • topic (string, required): The topic (e.g., "testing", "performance", "incremental models")

Example:

{
  "topic": "testing"
}

Project Structure

dataform-mcp/
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── cli.ts                # CLI interface
│   ├── tools/                # Tool implementations
│   ├── ingestion/            # Documentation scraping & processing
│   ├── storage/              # Vector & metadata storage
│   ├── search/               # Search implementations
│   └── utils/                # Utilities (config, logger)
├── data/
│   ├── vectordb/             # Vector database files
│   ├── metadata.db           # SQLite metadata
│   └── cache/                # Query cache
├── scripts/
│   ├── ingest.ts             # Initial ingestion
│   └── update.ts             # Update documentation
├── config.json               # Configuration
└── package.json

Configuration

Edit config.json to customize behavior:

{
  "documentation": {
    "base_url": "https://cloud.google.com/dataform/docs",
    "update_frequency": "weekly"
  },
  "embeddings": {
    "model": "text-embedding-3-small",
    "dimensions": 1536
  },
  "vector_store": {
    "type": "chroma",
    "path": "./data/vectordb"
  },
  "search": {
    "default_max_results": 5,
    "similarity_threshold": 0.7
  }
}

Create config.local.json for local overrides (gitignored).

Development

Build

npm run build

Run in Development Mode

npm run dev

Run Tests

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run tests with coverage
npm test -- --coverage

Test Structure:

  • tests/unit/ - Unit tests for individual components
  • tests/integration/ - Integration tests for full pipelines
  • tests/fixtures/ - Mock data and test fixtures

Test Coverage:

  • ✓ Document parsing (HTML to Markdown)
  • ✓ Document chunking with overlap
  • ✓ Query caching
  • ✓ Tool handlers (all 5 tools)
  • ✓ Metadata storage
  • ✓ End-to-end ingestion pipeline

Update Documentation

npm run update

Maintenance

Scheduled Updates

Set up a cron job for weekly updates:

0 0 * * 0 dataform-mcp update

Monitoring

Logs are written to logs/dataform-mcp.log. Set log level via environment variable:

LOG_LEVEL=0 dataform-mcp serve  # DEBUG
LOG_LEVEL=1 dataform-mcp serve  # INFO (default)
LOG_LEVEL=2 dataform-mcp serve  # WARN
LOG_LEVEL=3 dataform-mcp serve  # ERROR

Architecture

The MCP server uses:

  • Vector Store: ChromaDB for semantic search
  • Embeddings: OpenAI text-embedding-3-small
  • Metadata: SQLite for structured data
  • Cache: In-memory cache for frequent queries
  • Scraping: Playwright + Cheerio for documentation extraction

Environment Variables

# OpenAI API key for embeddings
OPENAI_API_KEY=your_api_key_here

# Log level (0-3)
LOG_LEVEL=1

# Custom config path
CONFIG_PATH=/path/to/config.json

Troubleshooting

Native Module Error (better-sqlite3)

Error: The module 'better_sqlite3.node' was compiled against a different Node.js version

This occurs when the native SQLite module needs to be rebuilt for your Node.js version.

Solution:

# Find the package installation directory
cd $(npm root -g)/dataform-docs-mcp

# Rebuild native modules
npm rebuild better-sqlite3

# Or rebuild all native modules
npm rebuild

Why this happens: VS Code or Claude Code may use a different Node.js version than your system, requiring native modules to be recompiled.

Server won't start

  1. Check logs in logs/dataform-mcp.log
  2. Ensure all dependencies are installed: npm install
  3. Verify configuration in config.json
  4. Try rebuilding native modules (see above)

Search returns no results

  1. Run ingestion: npm run ingest
  2. Check if vector database exists in data/vectordb/
  3. Verify OpenAI API key is set
  4. Check that ChromaDB is running on port 8000

Documentation is stale

Run update manually:

npm run update

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Submit a pull request

License

MIT

Support

For issues and questions:

Acknowledgments

Built with:

工具与能力

工具数量

5

资源数量

0

提示词数量

0

能力标签

语义搜索TypeScript本地部署文档检索开发辅助VSCode扩展自然语言处理

支持客户端

ClaudeVS Code

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

查资料带出处

把网页、论文和文档的检索结果连同链接一起带回对话。

站内知识检索

在自己的文档库里做语义搜索,比关键词更贴题。

事实核对

交叉多个来源确认一条信息,减少模型凭记忆作答。

选择建议

值得选的地方

  • 只提供 5 个工具,职责集中,接入后不容易误操作。
  • 已经适配 Claude、VS Code,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备API Key,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在搜索检索场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到API Key的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Dataform MCP Server

MCP World · 本页

5未说明未标注1 个2026-05-17
Baidu Netdisk

MCP World

未标注未说明未标注1 个2026-05-17
Sequentialthinking

MCP.so

1SSE有2 个2026-05-17
Brave Search 433812ff

MCP World

2未说明未标注1 个2026-05-17
mindsdb (430e18)

MCP World

0未说明有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Dataform MCP Server 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Dataform MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Dataform MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Dataform MCP Server 需要 API Key 吗?

公开资料标注的认证方式是API Key,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Dataform MCP Server 支持哪些客户端?

公开资料标注支持 Claude、VS Code;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP