io.github.aramai-schematica/coremodels
Official20 toolsCoreModels
CoreModels schema editor: nodes, mixins, relations, JSON Schema import/export. Sign-in required.
Edit and manage database schemas with nodes, mixins, relations, and JSON Schema support.
Captured live from the server via tools/list.
export_json_ld
Export project data in JSON-LD format using a configured export profile. Use `fetch_json_ld_import_profiles` first to discover the configTypeId. At least one of exportTypes/exportElements/exportTaxonomies/exportDataTypes must be true. Tree-based mode (graphBased=false) requires exactly one nodeId; graph-based mode allows multiple or none.
Parameters (11)
- graphProjectIdstringrequired
- configTypeIdstringrequired
JSON-LD export profile id (from fetch_json_ld_import_profiles)
- exportTypesboolean
- exportElementsboolean
- exportTaxonomiesboolean
- exportDataTypesboolean
- graphBasedboolean
true = graph-based (no root); false = tree-based (requires exactly one nodeId)
- spaceIdstring
Optional space id to filter export data; empty = all spaces
- nodeIdsarray
For tree-based export, exactly one root node id; for graph-based, optional
- includeSpaceboolean
- useDefaultTypeboolean
fetch_json_ld_import_profiles
Fetch JSON-LD import/export profiles available for a project.
Parameters (1)
- graphProjectIdstringrequired
export_jsonschema
Export project data as a JSON Schema string.
Parameters (4)
- graphProjectIdstringrequired
- spaceIdstring
- configTypeIdstring
Export profile id used for the JSON Schema export.
- rootNodeIdstring
Optional root node id; empty/omitted to export without a fixed root.
fetch_json_schema_import_profiles
Fetch JSON Schema import/export profiles available for a project.
Parameters (1)
- graphProjectIdstringrequired
import_jsonschema
Imports a JSON Schema into a space
Parameters (2)
- graphProjectIdstringrequired
- importDtoobjectrequired
validate_json
Validate a JSON document against a project's stored JSON Schema. The schema is regenerated from the project using the supplied configTypeId (the export profile id) and rootNodeId. Provide the JSON to validate as a serialized string.
Parameters (5)
- graphProjectIdstringrequired
- configTypeIdstring
Profile id used to map mixins/relations to schema keywords
- rootNodeIdstringrequired
Node id used as the root when generating the JSON Schema
- spaceIdstring
Optional space id to scope the schema
- jsonStringstringrequired
The JSON document to validate, serialized as a string
bulk_create
Create multiple nodes, relations, and mixin values in one atomic operation. When to use: - Creating more than one node. - Any creation that includes relations and/or mixins. - For a single node with no relations/mixins, prefer create_node. Required ids come from: - get_mixins_and_relation_groups: relationGroupId, mixinId, and each mixin column id. - get_project_summary or search_nodes (nodeType=Space): spaceIds, plus any existing nodeIds you want to reference. Relation endpoints (fromNodeId / toNodeId) may be either: - ids of nodes created elsewhere in this same payload, or - ids of nodes already in the project.
Parameters (2)
- graphProjectIdstringrequired
- bulkCreateDtoobjectrequired
create_mixin_type
Create a new mixin type. Check existing mixins first with get_mixins_and_relation_groups to avoid duplicates. Mixins are reusable property sets applicable to any node.
Parameters (2)
- graphProjectIdstringrequired
- mixinTypeDtoobjectrequired
get_mixins_and_relation_groups
Get the project schema: all mixin definitions and all relation-group definitions. Use this once at the start of a session to discover the IDs needed by other tools (mixinId, columnId, relationGroupId). Returns compact positional arrays - see the "format" field for the layout.
Parameters (1)
- graphProjectIdstringrequired
get_project_summary
Labels and IDs of types, elements, and taxonomies in the project. A category is omitted when it has more than 1000 nodes - use search_nodes with the matching nodeType filter to enumerate it.
Parameters (1)
- graphProjectIdstringrequired
list_projects
List the user's CoreModels projects as [id,name,accessLevel] (see the response "format" field). Use a returned id as graphProjectId for other tools. Pass searchTerm to filter by name (case-insensitive substring). Set includePublicProjects=true to also include public projects. Paged: page is 1-based; increment page up to the returned totalPages to get all results.
Parameters (4)
- searchTermstring
Optional case-insensitive substring to filter projects by name.
- includePublicProjectsboolean
When true, public projects the user is not a member of are also included.
- pageinteger
1-based page number. Increment to page through results up to totalPages.
- pageSizeinteger
create_mixin_value
Create a mixin value for a node. mixinId and column ids come from get_mixins_and_relation_groups. A node can have multiple mixins; each mixin can have multiple columns.
Parameters (2)
- graphProjectIdstringrequired
- mixinCreateDtoobjectrequired
remove_mixin_value
Remove one or more mixin column values from a node. mixinId and column ids come from get_mixins_and_relation_groups. This does not delete the mixin definition itself.
Parameters (2)
- graphProjectIdstringrequired
- mixinRemoveDtoobjectrequired
create_node
Create a new node. Empty/omitted spaceIds = default space; MUST be empty when nodeType is 'Space'.
Parameters (2)
- graphProjectIdstringrequired
- nodeCreateDtoobjectrequired
update_node
Update an existing node's label and/or its space assignments. Omitted fields are unchanged. spaceIds replaces (not merges) existing assignments; empty array = default space. At least one of label or spaceIds must be provided.
Parameters (2)
- graphProjectIdstringrequired
- nodeUpdateDtoobjectrequired
remove_node
Suspend a node.
Parameters (2)
- graphProjectIdstringrequired
- nodeIdstringrequired
create_relation
Create a directed relation fromNodeId → toNodeId. relationGroupId is the relation template; list templates with get_mixins_and_relation_groups.
Parameters (2)
- graphProjectIdstringrequired
- relationobjectrequired
remove_relation
Remove a relation between two nodes.
Parameters (2)
- graphProjectIdstringrequired
- relationobjectrequired
search_nodes
Search nodes in a CoreModels project. Returns compact positional arrays; the response "format" field describes the layout. Filters (provide at least one; they combine with AND): - nodeIds: exact id lookup - nodeType: one of Element, Type, Taxonomy, Exemplar, Component, Space, Tag, Mixin - expression: partial substring match on the node label (plain text, no wildcards) - spaceIds: restrict to specific spaces Optional flags: includeRelations, includeMixins, sortAttr, sortDesc, pageSize. Pagination: - First call: omit pagingToken. - If the response has a pagingToken, more pages exist. Repeat the same call with that exact token to get the next page. - If the response has no pagingToken, this was the last page.
Parameters (11)
- graphProjectIdstringrequired
- nodeTypestring
- nodeIdsarray
- expressionstring
Partial substring match against the node label. Plain text only - no wildcards, no regex, no '*', '%', '_' or '?' characters; the literal characters are matched as-is.
- spaceIdsarray
- includeRelationsboolean
- includeMixinsboolean
- sortAttrstring
- sortDescboolean
- pageSizeinteger
- pagingTokenstring
Pagination token from the previous response. Always use the latest one.
export_shex
Export project data as a ShEx (Shape Expressions) schema string.
Parameters (4)
- graphProjectIdstringrequired
- spaceIdstring
- nodeIdsarray
Optional type node ids to export; omit to export all types (optionally scoped to a space).
- includeCardinalityboolean
Whether to emit ShEx cardinality markers (?, *, +). Defaults to true.
README not available yet.
Install
claude_desktop_config.json
{
"mcpServers": {
"coremodels": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://go.coremodels.io/mcp-admin"
]
}
}
}Desktop config is stdio-only; this bridges via mcp-remote. Native remote: Settings > Connectors.