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.
README
Ed-Fi Software Development Kit for AI Assistants
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.
- Written by Copilot and not verified, other than the VS Code instructions.
- They will only work once
ed-fi-sdk-mcphas 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
- Install the Cline extension in VS Code
- Configure the MCP server in Cline's settings:
- Command:
npx ed-fi-sdk-mcp - Transport: stdio
- Command:
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
-
Ensure you have the GitHub Copilot and GitHub Copilot Chat extensions installed
-
Create or update your VS Code settings file (
.vscode/mcp.jsonin your workspace or global settings):{ "servers": { "ed-fi-sdk-mcp": { "type": "stdio", "command": "npx", "args": [ "ed-fi-sdk-mcp" ] } }, "inputs": [] } -
Restart VS Code and use
@ed-fi-data-standardin GitHub Copilot Chat to access Ed-Fi Data Standard tools
Visual Studio
- Ensure you have the GitHub Copilot extension installed
- 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 specificationname(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 onlyrelationshipType(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 textfilterDomains(optional): Filter entities by domain areasmaxEntities(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 ofhttps://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
Example Workflow
-
Start by listing available versions: Use
list_available_versionsto see all supported Ed-Fi Data Standard versions. -
Select a version or custom URL:
- Use
set_data_standard_versionwith your desired version (e.g., "5.2") for standard Ed-Fi API. - Use
set_custom_data_standard_urlto load from a custom Ed-Fi implementation.
- Use
-
Explore endpoints: Use
search_endpointsto find API endpoints related to your needs (e.g., search for "student"). -
Get endpoint details: Use
get_endpoint_detailsto learn about request/response formats for specific endpoints. -
Explore data models: Use
search_schemasandget_schema_detailsto understand the data structures. -
🆕 Visualize entity relationships: Use
generate_entity_diagramto create visual representations of the data model. -
🆕 Analyze entity domains: Use
get_entities_by_domainto understand how entities are organized by functional areas. -
🆕 Export diagrams: Use
export_diagram_as_textto 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:
-
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"
-
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.
-
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 -
Start a static file server in that directory and leave the terminal open while using the MCP server:
cd swagger npx serve -p 8000Verify in a browser:
http://localhost:8000/resources-swagger_ODS7.3.2_DS4.0.0.jsonshould return JSON. -
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) -
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, callset_custom_data_standard_urlagain with the other file's URL; the previous spec is replaced.
Visualization Workflow Example
For data architects working with Ed-Fi schemas:
-
Load the specification:
set_data_standard_version("5.2") -
Explore domain structure:
get_entities_by_domain() -
Generate a student-focused diagram:
generate_entity_diagram({ "format": "mermaid", "filterDomains": ["student", "school"], "maxEntities": 15 }) -
Examine specific relationships:
list_entity_relationships({ "entityName": "edfi_student" }) -
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
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。