@agentico/mcp-intent-based v0.2.0
MCP Intent Based Server and Tools
Overview
The MCP Intent Based Server and Tools package aims to provide a flexible and dynamic server environment for managing multiple MCP tools and transport connections. The server is designed to be extensible, allowing for the addition of new tools and transport types as needed. The main goal is to create a server that can adapt to different use cases and requirements by leveraging the concept of intent-based management.
The server is built around the idea of defining the desired state of the system through a manifest file, which describes the tools and their configurations. This approach allows for a more declarative way of managing the server environment, making it easier to understand and maintain.
The project is inspired by three great principles:
- Intent-Based Management: Taken from the Kubernetes Object Resource model, where the desired state of the system is defined in a manifest file (server.yaml), and the system automatically reconciles the actual state with the desired state; "describing what users want Kubernetes to do, rather than how to make it happen". This allows for a more efficient and automated way of managing server capabilities, reducing the need for manual intervention and configuration.
- The manifest file is a YAML file (server.yaml) that describes the desired state of the server capabilities, including the tools and their configurations. The server uses this manifest file to create and manage the tools and the transport connection (also, prompts and resources).
- The server uses a Kubernetes-like approach to define the desired state of the system through a manifest file. This allows for a more declarative way of managing the server environment, making it easier to understand and maintain.
- Temporal Workflow: Temporal uses
workflowsPathsto define the path where the workflows are located. This allows for a more organized and modular approach to managing workflows, making it easier to understand and maintain the server environment. In MCP Intent Based Server, we usetoolsPathsto define the path where the tools are located. - Java Reflection: The server uses Java reflection-like to dynamically create instances of tools based on the intent defined in the manifest file. This allows for a more flexible and adaptable server environment, as new tools can be added without modifying the server code. The server uses reflection to create instances of tools based on their class names, allowing for a more dynamic and extensible server environment.
The intent drives dynamism
The server is designed to be driven by the intent defined in a manifest file, allowing for a more declarative approach to managing the server environment. 1. Dynamic Tool Creation: The server can dynamically create tools based on the intent defined in the manifest file, allowing for a more flexible and adaptable server environment. 2. Transport Connection Management: The server supports multiple transport connections, allowing for a more versatile and extensible server environment. 3. Capability Management: The server can manage dynamic configuration, allowing for a more modular and organized approach to managing the server environment. 4. Telemetry and Monitoring: The server will support telemetry and monitoring to enhance observability and performance tracking. 5. Error Handling and Logging: The server includes error handling and logging capabilities to improve debugging and troubleshooting. 6. Tool Registration and Invocation: The server includes a mechanism for registering and invoking tools, allowing for a more organized and modular approach to managing the server environment. 7. Unregistering Tools: The server includes a mechanism for unregistering tools from the registry, allowing for a more organized and modular approach to managing the server environment.
Getting Started
To get started with the MCP Intent Based Server and Tools package, we have provided a GitHub Repo that contains a sample manifest file, example of basic tools, and documentation. The manifest file defines the desired state of the server environment, including the tools and their configurations. The sample tool demonstrates how to create a simple tool that can be used with the server.
Use the GitHub repo to clone the project or the Workspace to get started with the MCP Intent Based Server and Tools package. The project is designed to be modular and extensible, allowing for easy customization and modification to suit your needs.
Features
- Create a MCP server based on a manifest file.
- Dynamically create tools based on the intent defined in the manifest file.
- Support for multiple tools and their configurations.
- Support for multiple transport connections (official and custom, i.e. gRPC).
- Support both MCP and standard server types. (The
McpServerprovides access to the server, but read-only access) - Logging capabilities within the context for better debugging.
- Tool registration and invocation with error handling and logging.
- Add support for new transport types and improve existing transport logic.
- Mechanism to dynamically unregister tools (and the other server's features) if manifest file is changed.
Future Work
- Add support for multiple MCP servers.
- Add support for telemetry and monitoring.
- Add support for versioning and rollback.
- Add support for gRPC and other (non-official) transport types.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Terms of Service
By using this software, you agree to abide by the Terms of Service, which include restrictions on reverse engineering and other prohibited activities.
Get the latest information
To get on top of the latest about the work around updates on Agentico, subscribe to our newsletter for regular updates and announcements.
Our different blogs:
- La Rebelion - Topics around Cloud Native, Kubernetes, and DevOps.
- Agentico - Topics around Agentic workflows, MCP, and AI.
- K1s - Tools to help you with Kubernetes and Cloud Native.
- Intent Based AI - The specs and the tools to help you with Intent Based AI.
- MCP - Our hub for the Model Context Protocol (MCP) and the tools we are building around it.
- APICove - Topics and tools around API and API Management.