Supports loading environment variables from .env files to configure the MCP server settings and Context Broker connection details
FIWARE MCP Server
This is a first implementation of a FIWARE Model Context Protocol (MCP) Server that provides a bridge between the Context Broker and other services. The server implements basic operations for interacting with a FIWARE Context Broker.
Objectives
Create a basic MCP server implementation for FIWARE
Provide simple tools for Context Broker interaction
Demonstrate basic intent CRUD operations with the Context Broker
Serve as a foundation for more complex MCP implementations
Related MCP server: Confluence MCP
Features
Context Broker version checking
Query capabilities for the Context Broker
Entity publishing and updating
Prerequisites
Python 3.7 or higher
pip (Python package installer)
Access to a FIWARE Context Broker instance
Installation
Clone this repository:
Install the required dependencies:
Claude Desktop integration
Claude Desktop should launch the server via STDIO. Do not use “mcp install” or “mcp run” with this server.
Example configuration (adjust paths for your environment):
Alternative if dependencies are installed with pip:
Usage
By default, running the script starts the server in STDIO mode. Use --http to start an HTTP server.
STDIO (default):
HTTP mode:
HTTP host/port (optional):
When running with --http, the server binds to the provided host/port and uses stateless HTTP sessions for compatibility with streamable HTTP clients.
Redirecting with ngrok (HTTP mode)
To use LLMs via external APIs (for example the OpenAI Responses API) you may need to expose your local MCP server to the Internet. Use ngrok to create a public HTTPS tunnel to the server when running in HTTP mode.
Sign up at https://ngrok.com and install the ngrok client for your OS.
Add your ngrok auth token to the client (follow ngrok's OS-specific setup). For example:
ngrok (v3) config command: ngrok config add-authtoken <YOUR_AUTH_TOKEN>
Start your MCP server in HTTP mode (if not already running). Example:
python server.py --http --host 127.0.0.1 --port 5001
Start an ngrok tunnel that forwards to your HTTP server:
ngrok http http://127.0.0.1:5001 (replace host/port if you configured them differently)
Once ngrok is running it will display one or more public forwarding URLs. The MCP endpoint will be reachable at:
{PUBLIC_URL}/mcp
Note: Keep your auth token secure. The public URL stays active while ngrok is running and will cease to be reachable when you stop the tunnel.
Available Tools
CB_version
Checks the version of the Context Broker
Default parameters: address="localhost", port=1026
Returns: JSON string with version information
query_CB
Queries the Context Broker
Parameters:
address (default: "localhost")
port (default: 1026)
query (default: "")
Returns: JSON string with query results
publish_to_CB
Publishes or updates entities in the Context Broker
Parameters:
address (default: "localhost")
port (default: 1026)
entity_data (required: dictionary with entity information)
Returns: JSON string with operation status
Example Usage
Configuration
The server can be configured by modifying the following parameters in server.py:
Host address (HTTP mode only)
Port number (HTTP mode only)
Timeout settings
Error Handling
The server includes comprehensive error handling for:
Network connectivity issues
Invalid responses from the Context Broker
Malformed entity data
Server shutdown
Contributing
Feel free to submit issues and enhancement requests!
License
This project is licensed under the Apache License 2.0.