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.
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.