diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index abd52bf..8f8e925 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,5 +10,12 @@ repos: rev: v0.12.4 hooks: - id: ruff-format - - id: ruff + - id: ruff-check args: [--fix] + - repo: https://github.com/igorshubovych/markdownlint-cli + rev: v0.45.0 + hooks: + - id: markdownlint + args: + - "--config=.markdownlint.yaml" + - "docs/docs/**/*.mdx" diff --git a/CAPABILITIES.md b/CAPABILITIES.md new file mode 100644 index 0000000..5f0bbd4 --- /dev/null +++ b/CAPABILITIES.md @@ -0,0 +1,146 @@ +## Infrahub MCP Server 0.1.0 +| 🟢 Tools (10) | 🟢 Prompts | 🟢 Resources | 🔴 Logging | 🟢 Experimental | +| --- | --- | --- | --- | --- | +## 🛠️ Tools (10) + +
| + | Tool Name | +Description | +Inputs | +
|---|---|---|---|
| 1. | +
+ branch_create
+ |
+ Create a new branch in infrahub. Parameters: name: Name of the branch to create. sync_with_git: Whether to sync the branch with git. Defaults to False. Returns: Dictionary with success status and branch details. |
+
+
|
+
| 2. | +
+ get_branches
+ |
+ Retrieve all branches from infrahub. | +
+
|
+
| 3. | +
+ get_graphql_schema
+ |
+ Retrieve the GraphQL schema from Infrahub Parameters: None Returns: MCPResponse with the GraphQL schema as a string. |
+
+
|
+
| 4. | +
+ get_node_filters
+ |
+ Retrieve all the available filters for a specific schema node kind. There's multiple types of filters attribute filters are in the form attribute__value relationship filters are in the form relationship__attribute__value you can find more information on the peer node of the relationship using the get_schema toolFilters that start with parent refer to a related generic schema node. You can find the type of that related node by inspected the output of the get_schema tool.Parameters: kind: Kind of the objects to retrieve. branch: Branch to retrieve the objects from. Defaults to None (uses default branch). Returns: MCPResponse with success status and filters. |
+
+
|
+
| 5. | +
+ get_nodes
+ |
+ Get all objects of a specific kind from Infrahub. To retrieve the list of available kinds, use the get_schema_mapping tool.To retrieve the list of available filters for a specific kind, use the get_node_filters tool.Parameters: kind: Kind of the objects to retrieve. branch: Branch to retrieve the objects from. Defaults to None (uses default branch). filters: Dictionary of filters to apply. partial_match: Whether to use partial matching for filters. Returns: MCPResponse with success status and objects. |
+
+
|
+
| 6. | +
+ get_related_nodes
+ |
+ Retrieve related nodes by relation name and a kind. Args: kind: Kind of the node to fetch. filters: Filters to apply on the node to fetch. relation: Name of the relation to fetch. branch: Branch to fetch the node from. Defaults to None (uses default branch). Returns: MCPResponse with success status and objects. |
+
+
|
+
| 7. | +
+ get_schema
+ |
+ Retrieve the full schema for a specific kind. This includes attributes, relationships, and their types. Parameters: kind: Schema Kind to retrieve. branch: Branch to retrieve the schema from. Defaults to None (uses default branch). Returns: Dictionary with success status and schema. |
+
+
|
+
| 8. | +
+ get_schema_mapping
+ |
+ List all schema nodes and generics available in Infrahub Parameters: branch: Branch to retrieve the mapping from. Defaults to None (uses default branch). Returns: Dictionary with success status and schema mapping. |
+
+
|
+
| 9. | +
+ get_schemas
+ |
+ Retrieve all schemas from Infrahub, optionally excluding Profiles and Templates. Parameters: infrahub_client: Infrahub client to use branch: Branch to retrieve schemas from exclude_profiles: Whether to exclude Profile schemas. Defaults to True. exclude_templates: Whether to exclude Template schemas. Defaults to True. Returns: Dictionary with success status and schemas. |
+
+
|
+
| 10. | +
+ query_graphql
+ |
+ Execute a GraphQL query against Infrahub. Parameters: query: GraphQL query to execute. Returns: MCPResponse with the result of the query. |
+
+
|
+