Ed-Fi SDK MCP

Ed-Fi SDK MCP

Enables AI assistants to explore Ed-Fi API endpoints, schemas, and generate entity relationship diagrams, aiding development of Ed-Fi client applications.

Category
访问服务器

README

Ed-Fi Software Development Kit for AI Assistants

OpenSSF Scorecard

Tools for use with AI Assistants when developing client applications that interact with Ed-Fi APIs.

[!NOTE] At this time, there is a single tool available: an MCP server. Given that is about information discovery, but not data access, MCP might not be the right choice. We will also explore use of CLI tools and/or Skills for similar purposes.

Features

  • Version Selection: Choose from Ed-Fi Data Standard versions 4.0, 5.0, 5.1, or 5.2
  • Custom URL Support: Configure alternative URLs for custom Ed-Fi Data Standard instances
  • OpenAPI Integration: Automatically fetches and parses OpenAPI specifications from Ed-Fi APIs
  • Intelligent Caching: Caches OpenAPI specs locally to reduce network requests and improve response times
  • Endpoint Discovery: Search and explore available API endpoints
  • Schema Exploration: Browse and understand data models and schemas
  • Detailed Documentation: Get comprehensive information about endpoints and data structures
  • 🆕 Schema Visualization: Generate entity relationship diagrams in multiple formats (Mermaid, PlantUML, Graphviz)
  • 🆕 Interactive Entity Analysis: Explore relationships between core entities (students, schools, assessments, etc.)
  • 🆕 Domain Filtering: Filter diagrams by entity type or domain area
  • 🆕 Multiple Export Formats: Export diagrams as text for use in various visualization tools
  • 🆕 Prompt Documentation: Access comprehensive guides and best practices through AI prompts

Documentation & Prompts

The MCP server includes built-in prompt templates that provide detailed guidance on working with Ed-Fi APIs:

  • ed-fi-authentication-guide: Complete OAuth 2.0 authentication guide with code examples
  • ed-fi-api-quickstart: Quick start guide for common API operations (GET, POST, PUT, DELETE)
  • ed-fi-data-validation: Data validation strategies and error handling techniques

These prompts can be accessed through any MCP-compatible AI assistant and provide contextual help for Ed-Fi development tasks.

For more information on using this server, see:

AI Assistant Integration

[!WARNING] These installation instructions are not ready for usage yet.

  1. Written by Copilot and not verified, other than the VS Code instructions.
  2. They will only work once ed-fi-sdk-mcp has been published to npmjs.com.

This MCP server can be integrated with popular AI coding assistants to provide Ed-Fi Data Standard context during development.

Claude Desktop

Add the following to your Claude Desktop configuration file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "ed-fi-data-standard": {
      "command": "npx",
      "args": ["ed-fi-sdk-mcp"],
      "env": {}
    }
  }
}

VS Code with Cline

  1. Install the Cline extension in VS Code
  2. Configure the MCP server in Cline's settings:
    • Command: npx ed-fi-sdk-mcp
    • Transport: stdio

Continue.dev

Add the following to your Continue configuration:

{
  "mcp": {
    "servers": {
      "ed-fi-data-standard": {
        "command": "npx",
        "args": ["ed-fi-sdk-mcp"]
      }
    }
  }
}

Cursor

Configure the MCP server in Cursor's MCP settings:

  • Server name: ed-fi-data-standard
  • Command: npx ed-fi-sdk-mcp

GitHub Copilot

VS Code

  1. Ensure you have the GitHub Copilot and GitHub Copilot Chat extensions installed

  2. Create or update your VS Code settings file (.vscode/mcp.json in your workspace or global settings):

    {
     "servers": {
      "ed-fi-sdk-mcp": {
       "type": "stdio",
       "command": "npx",
       "args": [
        "ed-fi-sdk-mcp"
       ]
      }
     },
     "inputs": []
    }
    
  3. Restart VS Code and use @ed-fi-data-standard in GitHub Copilot Chat to access Ed-Fi Data Standard tools

Visual Studio

  1. Ensure you have the GitHub Copilot extension installed
  2. See instructions in Use MCP servers.

Custom Installation

If you've installed the package globally or locally, you can also use:

# Global installation
npm install -g ed-fi-sdk-mcp

# Then reference it directly
ed-fi-mcp-server

Available Tools

The MCP server provides the following tools:

1. list_available_versions

Lists all supported Ed-Fi Data Standard versions and their corresponding OpenAPI specification URLs.

2. set_data_standard_version

Loads the OpenAPI specification for a specific Ed-Fi Data Standard version.

Parameters:

  • version (required): One of "4.0", "5.0", "5.1", or "5.2"

3. set_custom_data_standard_url

Loads the OpenAPI specification from a custom URL (e.g., for custom Ed-Fi implementations).

Parameters:

  • url (required): The URL to the custom OpenAPI specification
  • name (required): A descriptive name for this custom data standard

4. search_endpoints

Searches for API endpoints that match a query term.

Parameters:

  • query (required): Search term (e.g., "student", "school", "assessment")

5. get_endpoint_details

Gets detailed information about a specific API endpoint.

Parameters:

  • path (required): The API endpoint path (e.g., "/ed-fi/students")
  • method (optional): HTTP method (default: "GET")

6. search_schemas

Searches for data models/schemas that match a query term.

Parameters:

  • query (required): Search term (e.g., "Student", "School", "Assessment")

7. get_schema_details

Gets detailed information about a specific data model/schema.

Parameters:

  • schemaName (required): The name of the schema

🎨 Schema Visualization Tools

8. generate_entity_diagram

Generate entity relationship diagrams from the OpenAPI specification.

Parameters:

  • format (optional): Diagram format - "mermaid", "plantuml", or "graphviz" (default: "mermaid")
  • includeProperties (optional): Include entity properties in diagram (default: true)
  • includeDescriptions (optional): Include entity descriptions (default: false)
  • filterDomains (optional): Array of domain names to filter by (e.g., ["student", "school"])
  • maxEntities (optional): Maximum number of entities to include (default: 20)

9. list_entity_relationships

List relationships between entities in the current specification.

Parameters:

  • entityName (optional): Show relationships for a specific entity only
  • relationshipType (optional): Filter by relationship type ("one-to-one", "one-to-many", "many-to-one", "many-to-many")

10. get_entities_by_domain

Get entities grouped by domain areas (Student, School, Staff, Assessment, etc.).

Parameters:

  • domain (optional): Get entities for a specific domain only

11. export_diagram_as_text

Export a diagram as text that can be rendered by various visualization tools.

Parameters:

  • format (required): Diagram format - "mermaid", "plantuml", or "graphviz"
  • filename (optional): Filename to save the diagram text
  • filterDomains (optional): Filter entities by domain areas
  • maxEntities (optional): Maximum number of entities to include (default: 15)

Configuration

The MCP server supports the following environment variables for configuration:

Environment Variables

  • ED_FI_CUSTOM_BASE_URL (optional): Set a custom base URL for Ed-Fi API instances. When set, standard version URLs will be rewritten to use this base instead of https://api.ed-fi.org.

    Example: ED_FI_CUSTOM_BASE_URL=https://my-ed-fi-instance.org/v7.3

  • ED_FI_CACHE_DIR (optional): Specify a custom directory for caching OpenAPI specifications. Defaults to the system temporary directory.

    Example: ED_FI_CACHE_DIR=/home/user/.cache/ed-fi-mcp

Example Usage with Custom Configuration

# Using a custom Ed-Fi instance
ED_FI_CUSTOM_BASE_URL=https://my-ed-fi.org/v7.3 npx ed-fi-sdk-mcp

# Custom cache directory
ED_FI_CACHE_DIR=/opt/cache/ed-fi npx ed-fi-sdk-mcp

# Both options together
ED_FI_CUSTOM_BASE_URL=https://my-ed-fi.org/v7.3 ED_FI_CACHE_DIR=/opt/cache/ed-fi npx ed-fi-sdk-mcp

Supported Ed-Fi Data Standard Versions

Version OpenAPI Specification URL
4.0 https://api.ed-fi.org/v6.2/api/metadata/data/v3/resources/swagger.json
5.0 https://api.ed-fi.org/v7.1/api/metadata/data/v3/resources/swagger.json
5.1 https://api.ed-fi.org/v7.2/api/metadata/data/v3/resources/swagger.json
5.2 https://api.ed-fi.org/v7.3/api/metadata/data/v3/resources/swagger.json

Example Workflow

  1. Start by listing available versions: Use list_available_versions to see all supported Ed-Fi Data Standard versions.

  2. Select a version or custom URL:

    • Use set_data_standard_version with your desired version (e.g., "5.2") for standard Ed-Fi API.
    • Use set_custom_data_standard_url to load from a custom Ed-Fi implementation.
  3. Explore endpoints: Use search_endpoints to find API endpoints related to your needs (e.g., search for "student").

  4. Get endpoint details: Use get_endpoint_details to learn about request/response formats for specific endpoints.

  5. Explore data models: Use search_schemas and get_schema_details to understand the data structures.

  6. 🆕 Visualize entity relationships: Use generate_entity_diagram to create visual representations of the data model.

  7. 🆕 Analyze entity domains: Use get_entities_by_domain to understand how entities are organized by functional areas.

  8. 🆕 Export diagrams: Use export_diagram_as_text to save diagrams for documentation or further analysis.

Custom Ed-Fi Instance Example

If you're working with a custom Ed-Fi implementation, you can load specifications directly:

  1. Use set_custom_data_standard_url with:

    • url: "https://your-ed-fi.org/api/metadata/data/v3/resources/swagger.json"
    • name: "My Custom Ed-Fi Instance"
  2. Continue with normal workflow (search_endpoints, etc.)

Running against saved swagger.json files (no ODS/API required)

When the Data Standard / API combination you need isn't hosted on api.ed-fi.org — for example DS 4.0 served by API v7.3.2 — you can capture the swagger.json files from a one-time local install and share them. Others can then point the MCP server at the saved files without standing up their own ODS/API instance.

  1. Place both swagger files in a directory:

    swagger/resources-swagger_ODS7.3.2_DS4.0.0.json
    swagger/descriptors-swagger_ODS7.3.2_DS4.0.0.json
    
  2. Start a static file server in that directory and leave the terminal open while using the MCP server:

    cd swagger
    npx serve -p 8000
    

    Verify in a browser: http://localhost:8000/resources-swagger_ODS7.3.2_DS4.0.0.json should return JSON.

  3. In an MCP-aware chat (Agent mode), call:

    set_custom_data_standard_url
      url:  http://localhost:8000/resources-swagger_ODS7.3.2_DS4.0.0.json
      name: Ed-Fi 7.3.2 / DS 4.0 (from JSON file)
    
  4. Use the normal tools — search_endpoints, get_schema_details edFi_student, generate_entity_diagram, etc.

[!NOTE] The MCP server fetches the spec over HTTP, so a file:// path or raw filesystem path will not work — the static server step is required. To switch from resources to descriptors, call set_custom_data_standard_url again with the other file's URL; the previous spec is replaced.

Visualization Workflow Example

For data architects working with Ed-Fi schemas:

  1. Load the specification:

    set_data_standard_version("5.2")
    
  2. Explore domain structure:

    get_entities_by_domain()
    
  3. Generate a student-focused diagram:

    generate_entity_diagram({
      "format": "mermaid",
      "filterDomains": ["student", "school"],
      "maxEntities": 15
    })
    
  4. Examine specific relationships:

    list_entity_relationships({
      "entityName": "edfi_student"
    })
    
  5. Export for documentation:

    export_diagram_as_text({
      "format": "plantuml",
      "filename": "student-entities.puml",
      "filterDomains": ["student"]
    })
    

The generated diagrams can be used in:

  • GitHub/GitLab documentation (Mermaid)
  • Technical documentation (PlantUML)
  • System architecture documents (Graphviz)
  • Presentation materials (exported as images)

License

Copyright (c) 2025, Ed-Fi Alliance, LLC. All rights reserved.

This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选