Fledge IoT

by krupalp525

330 downloads
Not rated
GitHub

About

Bridges the Fledge IoT platform with natural language interfaces for sensor data access, system management, and real-time visualization through WebSocket streaming and containerized deployment.

Details

Author
krupalp525
Repository
Krupalp525/fledge-mcp
Downloads
330
License
MIT License
Categories
Productivity, Design, Developer Tools, AI, Infrastructure, Security, Frontend, Other
Tags
#integration

16. generate_mock_data: Generate realistic mock sensor data for testing

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Fledge IoT
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 @highlight/mcp-server

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

1. Clone this repository:

git clone https://github.com/Krupalp525/fledge-mcp.git
cd fledge-mcp

2. Install the dependencies:

pip install -r requirements.txt

1. Make sure Fledge is running:

fledge start

2. Start the MCP server:

python mcp_server.py

For secure operation with API key authentication:

python secure_mcp_server.py

3. Verify it's working by accessing the health endpoint:

curl http://localhost:8082/health

You should receive "Fledge MCP Server is running" as the response.

The Fledge MCP Server can be deployed on Smithery.ai for enhanced scalability and availability. Follow these steps to deploy:

1. Prerequisites
- Docker installed on your local machine
- A Smithery.ai account
- The Smithery CLI tool installed

2. Build and Deploy


smithery deploy

3. Configuration
The smithery.json file contains the configuration for your deployment:
- WebSocket transport on port 8082
- Configurable Fledge API URL
- Tool definitions and parameters
- Timeout settings

4. Environment Variables
Set the following environment variables in your Smithery.ai dashboard:
- FLEDGE_API_URL: Your Fledge API endpoint
- API_KEY: Your secure API key (if using secure mode)

5. Verification
After deployment, verify your server is running:

   smithery status fledge-mcp

6. Monitoring
Monitor your deployment through the Smithery.ai dashboard:
- Real-time logs
- Performance metrics
- Error tracking
- Resource usage

7. Updating
To update your deployment:


smithery deploy --update

get_sensor_data

Fetch sensor data from Fledge with optional filtering by time range and limit.

list_sensors

List all sensors available in Fledge.

ingest_test_data

Ingest test data into Fledge, with optional batch count.

get_service_status

Get the status of all Fledge services.

start_stop_service

Start or stop a Fledge service by type.

update_config

Update Fledge configuration parameters.

generate_ui_component

Generate React components for Fledge data visualization.

fetch_sample_frontend

Get sample frontend templates for different frameworks.

suggest_ui_improvements

Get AI-powered suggestions for improving UI code.

subscribe_to_sensor

Set up a subscription to sensor data updates.

get_latest_reading

Get the most recent reading from a specific sensor.

validate_api_connection

Check if the Fledge API is reachable.

simulate_frontend_request

Test API requests with different methods and payloads.

get_api_schema

Get information about available Fledge API endpoints.

list_plugins

List available Fledge plugins.

generate_mock_data

Generate realistic mock sensor data for testing.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "fledge iot": {
            "env": {},
            "args": [
                "-y",
                "@highlight/mcp-server"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": [],
    "args": [
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "npx"
}

Macos

{
    "env": [],
    "args": [
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "npx"
}

Windows

{
    "env": [],
    "args": [
        "/c",
        "npx",
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "cmd"
}

Fledge MCP Server

This is a Model Context Protocol (MCP) server that connects Fledge functionality to Cursor AI, allowing the AI to interact with Fledge instances via natural language commands.

Prerequisites

- Fledge installed locally or accessible via API (default: http://localhost:8081)
- Cursor AI installed
- Python 3.8+

Installation

1. Clone this repository:

git clone https://github.com/Krupalp525/fledge-mcp.git
cd fledge-mcp

2. Install the dependencies:

pip install -r requirements.txt

Running the Server

1. Make sure Fledge is running:

fledge start

2. Start the MCP server:

python mcp_server.py

For secure operation with API key authentication:

python secure_mcp_server.py

3. Verify it's working by accessing the health endpoint:

curl http://localhost:8082/health

You should receive "Fledge MCP Server is running" as the response.

Connecting to Cursor

1. In Cursor, go to Settings > MCP Servers
2. Add a new server:
- URL: http://localhost:8082/tools
- Tools file: Upload the included tools.json or point to its local path

3. For the secure server, configure the "X-API-Key" header with the value from the api_key.txt file that is generated when the secure server starts.

4. Test it: Open Cursor's Composer (Ctrl+I), type "Check if Fledge API is reachable," and the AI should call the validate_api_connection tool.

Available Tools

Data Access and Management

1. get_sensor_data: Fetch sensor data from Fledge with optional filtering by time range and limit 2. list_sensors: List all sensors available in Fledge 3. ingest_test_data: Ingest test data into Fledge, with optional batch count

Service Control

4. get_service_status: Get the status of all Fledge services 5. start_stop_service: Start or stop a Fledge service by type 6. update_config: Update Fledge configuration parameters

Frontend Code Generation

7. generate_ui_component: Generate React components for Fledge data visualization 8. fetch_sample_frontend: Get sample frontend templates for different frameworks 9. suggest_ui_improvements: Get AI-powered suggestions for improving UI code

Real-Time Data Streaming

10. subscribe_to_sensor: Set up a subscription to sensor data updates 11. get_latest_reading: Get the most recent reading from a specific sensor

Debugging and Validation

12. validate_api_connection: Check if the Fledge API is reachable 13. simulate_frontend_request: Test API requests with different methods and payloads

Documentation and Schema

14. get_api_schema: Get information about available Fledge API endpoints 15. list_plugins: List available Fledge plugins

Advanced AI-Assisted Features

16. generate_mock_data: Generate realistic mock sensor data for testing

Testing the API

You can test the server using the included test scripts:

# For standard server
python test_mcp.py

For secure server with API key

python test_secure_mcp.py

Security Options

The secure server (secure_mcp_server.py) adds API key authentication:

1. On first run, it generates an API key stored in api_key.txt
2. All requests must include this key in the X-API-Key header
3. Health check endpoint remains accessible without authentication

Example API Requests

# Validate API connection
curl -X POST -H "Content-Type: application/json" -d '{"name": "validate_api_connection"}' http://localhost:8082/tools

Generate mock data

curl -X POST -H "Content-Type: application/json" -d '{"name": "generate_mock_data", "parameters": {"sensor_id": "temp1", "count": 5}}' http://localhost:8082/tools

Generate React chart component

curl -X POST -H "Content-Type: application/json" -d '{"name": "generate_ui_component", "parameters": {"component_type": "chart", "sensor_id": "temp1"}}' http://localhost:8082/tools

For secure server, add API key header

curl -X POST -H "Content-Type: application/json" -H "X-API-Key: YOUR_API_KEY" -d '{"name": "list_sensors"}' http://localhost:8082/tools

Extending the Server

To add more tools:
1. Add the tool definition to tools.json
2. Implement the tool handler in mcp_server.py and secure_mcp_server.py

Production Considerations

For production deployment:
- Use HTTPS
- Deploy behind a reverse proxy like Nginx
- Implement more robust authentication (JWT, OAuth)
- Add rate limiting
- Set up persistent data storage for subscriptions

Deploying on Smithery.ai

The Fledge MCP Server can be deployed on Smithery.ai for enhanced scalability and availability. Follow these steps to deploy:

1. Prerequisites
- Docker installed on your local machine
- A Smithery.ai account
- The Smithery CLI tool installed

2. Build and Deploy

   # Build the Docker image
docker build -t fledge-mcp .

# Deploy to Smithery.ai
smithery deploy

3. Configuration
The smithery.json file contains the configuration for your deployment:
- WebSocket transport on port 8082
- Configurable Fledge API URL
- Tool definitions and parameters
- Timeout settings

4. Environment Variables
Set the following environment variables in your Smithery.ai dashboard:
- FLEDGE_API_URL: Your Fledge API endpoint
- API_KEY: Your secure API key (if using secure mode)

5. Verification
After deployment, verify your server is running:

   smithery status fledge-mcp

6. Monitoring
Monitor your deployment through the Smithery.ai dashboard:
- Real-time logs
- Performance metrics
- Error tracking
- Resource usage

7. Updating
To update your deployment:

   # Build new image
docker build -t fledge-mcp .

# Deploy updates
smithery deploy --update

JSON-RPC Protocol Support

The server implements the Model Context Protocol (MCP) using JSON-RPC 2.0 over WebSocket. The following methods are supported:

1. initialize

   {
"jsonrpc": "2.0",
"method": "initialize",
"params": {},
"id": "1"
}

Response:
   {
"jsonrpc": "2.0",
"result": {
"serverInfo": {
"name": "fledge-mcp",
"version": "1.0.0",
"description": "Fledge Model Context Protocol (MCP) Server",
"vendor": "Fledge",
"capabilities": {
"tools": true,
"streaming": true,
"authentication": "api_key"
}
},
"configSchema": {
"type": "object",
"properties": {
"fledge_api_url": {
"type": "string",
"description": "Fledge API URL",
"default": "http://localhost:8081/fledge"
}
}
}
},
"id": "1"
}

2. tools/list

   {
"jsonrpc": "2.0",
"method": "tools/list",
"params": {},
"id": "2"
}

Response: Returns the list of available tools and their parameters.

3. tools/call

   {
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_sensor_data",
"parameters": {
"sensor_id": "temp1",
"limit": 10
}
},
"id": "3"
}

Error Codes

The server follows standard JSON-RPC 2.0 error codes:

- -32700: Parse error
- -32600: Invalid Request
- -32601: Method not found
- -32602: Invalid params
- -32000: Server error

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.