Permet aux clients IA de charger, interroger et écrire des données liées RDF et d'exécuter des opérations SPARQL sous forme de plans JSON composés.
Aussi connu sous AtomGraph/Web-Algebra, web-algebra
- Étoiles
- 49
- Outils
- —
- Téléchargements, 30 jours
- —
- Dernière version
- 2.0.4
- Dernier commit
- 3 nov. 2026
- Licence
- Apache-2.0
Qu'est-ce que Web-Algebra MCP ?
Web-Algebra est un serveur MCP. Permet aux clients IA de charger, interroger et écrire des données liées RDF et d'exécuter des opérations SPARQL sous forme de plans JSON composés.
Résumé généré à partir du README du projet
À propos du MCP server Web-Algebra
Web Algebra permet aux développeurs travaillant avec les technologies du Web sémantique de gérer les données liées RDF et les requêtes SPARQL via le langage naturel. Ce système permet aux agents IA de traduire des instructions humaines en un bytecode JSON optimisé, qui exécute des flux de travail complexes de manière atomique plutôt que par une série d'appels d'outils individuels. Il prend en charge un large éventail d'opérations, notamment GET, POST et PUT pour le Linked Data, ainsi que SELECT, CONSTRUCT et DESCRIBE pour la gestion SPARQL.
Les utilisateurs peuvent connecter ce serveur à des clients IA comme Claude Desktop en utilisant les transports stdio ou streamable HTTP. Bien que de nombreuses opérations fonctionnent de manière indépendante, l'intégration avec LinkedDataHub nécessite un certificat client et un mot de passe fournis via des variables d'environnement. Si un agent doit générer des requêtes SPARQL spécifiques à l'aide de l'outil SPARQLString, une clé API OpenAI doit être configurée. Le système est conçu pour tout gérer, de la simple manipulation d'URI et des opérations sur les chaînes de caractères aux flux de contrôle complexes tels que les boucles ForEach et le filtrage au sein de jeux de données sémantiques.
Ce que vous pouvez faire avec
- 1Génération automatisée de requêtes SPARQLDemandez à un agent IA de rédiger et d'exécuter une requête SPARQL spécifique en utilisant le langage naturel.
- 2Traitement par lots de données sémantiquesDonnez l'instruction à un agent d'itérer à travers un ensemble de résultats et d'effectuer des opérations sur chaque élément.
- 3Gestion de ressources LinkedDataHubDirigez une IA pour créer de nouveaux éléments, conteneurs ou vues au sein d'une instance LinkedDataHub.
- 4Compilation de workflows complexesFaites compiler à un agent IA un flux de travail sémantique multi-étapes en un seul plan JSON exécutable.
Extrait du README du projet. Chaque cas d'utilisation est vérifié par rapport à une citation du document.
Comment installer Web-Algebra MCP
Formats vérifiés le 10 nov. 2026Ajouter à CursorAjouter à GooseInstaller Web-Algebra MCP dans Claude Code
$ claude mcp add --env 'CERT_PASSWORD=<YOUR_CERT_PASSWORD>' --env 'OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>' web-algebra -- uvx web-algebraInstaller Web-Algebra MCP dans Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"web-algebra": {
"command": "uvx",
"args": [
"web-algebra"
],
"env": {
"CERT_PASSWORD": "<YOUR_CERT_PASSWORD>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}Installer Web-Algebra MCP dans VS Code
.vscode/mcp.json
{
"servers": {
"web-algebra": {
"type": "stdio",
"command": "uvx",
"args": [
"web-algebra"
],
"env": {
"CERT_PASSWORD": "<YOUR_CERT_PASSWORD>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}Installer Web-Algebra MCP dans VS Code CLI
$ code --add-mcp '{"name":"web-algebra","type":"stdio","command":"uvx","args":["web-algebra"],"env":{"CERT_PASSWORD":"<YOUR_CERT_PASSWORD>","OPENAI_API_KEY":"<YOUR_OPENAI_API_KEY>"}}'Installer Web-Algebra MCP dans Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"web-algebra": {
"command": "uvx",
"args": [
"web-algebra"
],
"env": {
"CERT_PASSWORD": "<YOUR_CERT_PASSWORD>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}Installer Web-Algebra MCP dans Codex
$ codex mcp add web-algebra --env 'CERT_PASSWORD=<YOUR_CERT_PASSWORD>' --env 'OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>' -- uvx web-algebraInstaller Web-Algebra MCP dans Codex config.toml
~/.codex/config.toml
[mcp_servers.web-algebra] command = "uvx" args = ["web-algebra"] [mcp_servers.web-algebra.env] CERT_PASSWORD = "<YOUR_CERT_PASSWORD>" OPENAI_API_KEY = "<YOUR_OPENAI_API_KEY>"
Installer Web-Algebra MCP dans Gemini CLI
$ gemini mcp add -s user -e 'CERT_PASSWORD=<YOUR_CERT_PASSWORD>' -e 'OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>' web-algebra uvx -- web-algebraInstaller Web-Algebra MCP dans Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"web-algebra": {
"command": "uvx",
"args": [
"web-algebra"
],
"env": {
"CERT_PASSWORD": "<YOUR_CERT_PASSWORD>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}Configuration
CERT_PASSWORDSecretPassword of the client certificate
OPENAI_API_KEYSecretOpenAI API key, used by SPARQLString to write queries
CERT_PASSWORDCERT_PEM_PATHCERT_PEM_PATHPath to the LinkedDataHub client certificate (PEM), for authenticated requests
| Nom | Description | Type |
|---|---|---|
| CERT_PASSWORD | Password of the client certificate | Secret |
| OPENAI_API_KEY | OpenAI API key, used by SPARQLString to write queries | Secret |
| CERT_PASSWORD | — | |
| CERT_PEM_PATH | — | |
| CERT_PEM_PATH | Path to the LinkedDataHub client certificate (PEM), for authenticated requests |
Vérifications automatisées
Exécuté le 13 nov. 2026Rapport complet →A passé nos vérifications automatisées. Il ne s'agit pas d'un audit de sécurité : lisez le code et donnez au serveur l'accès le plus restreint dont il a besoin. Fonctionnement des vérifications
- Dépôt source lié et accessibleatomgraph/web-algebra is public and reachablegithub.com/atomgraph/web-algebra ↗Réussi
- Le nom du package correspond au dépôt sourceweb-algebra names atomgraph/web-algebra as sourcepypi.org/project/web-algebra/ ↗Réussi
- Provenance du build (attestation Sigstore)Sigstore attestation for web-algebrapypi.org/project/web-algebra/ ↗Réussi
- Licence open source (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Réussi
- Commit ou version publiée au cours de l'année écouléeLast commit or release 2026-11-03github.com/atomgraph/web-algebra ↗Réussi
- OpenSSF ScorecardNon vérifié
- Nom du package non proche d'un package populaireNo popular package one edit away from web-algebraRéussi
- Aucun avis critique dans le package ou ses dépendances38 resolved dependencies checked; no critical advisoryosv.dev ↗Réussi
- Aucune instruction cachée destinée au modèle0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersRéussi
- Les outils destructifs sont étiquetésNon vérifié
- Le point de terminaison distant répond à la poignée de main MCPNon vérifié
README
Voir sur GitHubWeb-Algebra
A composable RDF operations system that translates natural language instructions into JSON-formatted domain-specific language operations for loading, querying, and writing RDF Linked Data.
Overview
This system implements generic operations for RDF Linked Data and SPARQL management, as well as some LinkedDataHub-specific operations. Operations can be consumed in two ways:
- Executable JSON format: Operations are composed into JSON structures and executed by the provided execution engine
- Model Context Protocol (MCP): Operations are exposed as tools for AI agents to use interactively
Instead of agents executing semantic workflows step-by-step through individual MCP tool calls, Web-Algebra enables agents to compile entire workflows into optimized JSON "bytecode" that executes atomically - enabling complex multi-operation compositions.
Demo
See WebAlgebra in action - translating natural language into RDF operations.
Architecture
The system is built around the Operation abstract base class that provides:
- Registry System: Auto-discovery of operations from
src/web_algebra/operations/ - JSON DSL: Operations use
@opkey withargsfor parameters, supporting nested operation calls - RDFLib Type System: Uses
URIRef,Literal,Graph, andResulttypes internally for proper RDF handling - Execution Engine: Both standalone execution and MCP server integration
- Context System: ForEach operations set row context for inner operations to access via
Value - URI Resolution: Proper semantic URI construction with
ResolveURIoperation
Key Components
- System Prompt: Complete operation definitions and JSON format specification
- Formal Semantics: Complete type system and operation catalog
- Operation Interface: Base class and JSON interpreter
- Operation Implementations: Directory containing all available operations
- Examples: Real-world plans over live Linked Data, each with its result and checks
Operations
The operations cover read-write Linked Data, SPARQL queries, URI manipulation, and LinkedDataHub-specific resource creation. Non-exhaustive list:
- Linked Data
GETPATCHPOSTPUT
- SPARQL
CONSTRUCTDESCRIBESELECTSubstituteValuesSPARQLString
- Schema
ExtractClassesExtractDatatypePropertiesExtractObjectPropertiesExtractOntology
- Reconciliation
Reconcile
- URI & String Operations
ResolveURIEncodeForURIConcatReplaceStrStrUUIDURI
- Date/Time
Now
- Control Flow & Variables
ValueVariableForEachIterateFilterBindingsCurrentPositionLastMerge
- LinkedDataHub-specific
ldh-CreateContainerldh-CreateItemldh-Listldh-AddFileldh-AddGenericServiceldh-AddResultSetChartldh-AddSelectldh-AddConstructldh-AddViewldh-AddObjectBlockldh-AddXHTMLBlockldh-RemoveBlockldh-GeneratePortalldh-GenerateClassContainersldh-GenerateOntologyViews
Usage
Pre-requisites
- Install uv
-
uv venv uv sync
Standalone
Natural language instruction
uv run python src/web_algebra/main.py
Then enter instruction, for example:
Select random 10 UK cities from DBpedia
See the instructions of the examples.
Currently requires OpenAI API access. OPENAI_API_KEY env value has to be set.
Execute JSON
uv run web-algebra --from-json ./examples/city-profiles/plan.json
See the examples: each has the instruction it answers, its plan, the result of a run, and checks.
With LinkedDataHub
- Run LinkedDataHub v6
- Give
web-algebrayour LDH's owner certificate and its password in theCERT_PEM_PATHandCERT_PASSWORDenvironment variables (or the--cert_pem_pathand--cert_passwordoptions, which override them). For example:
export CERT_PEM_PATH=../LinkedDataHub/ssl/owner/cert.pem
export CERT_PASSWORD="$(cat ../LinkedDataHub/secrets/owner_cert_password.txt)"
uv run web-algebra --from-json ./examples/northwind-category-catalogue/plan.json
Here and throughout this guide, the client certificate and its password are only required for authentication with LinkedDataHub. You don't need them if you're not using LinkedDataHub with Web Algebra.
As MCP server
Install
Requires uv. Add this to your MCP client configuration (e.g. claude_desktop_config.json):
{
"mcpServers": {
"web-algebra": {
"command": "uvx",
"args": ["--from", "web-algebra", "web-algebra-mcp"],
"env": {
"CERT_PEM_PATH": "/path/to/LinkedDataHub/ssl/owner/cert.pem",
"CERT_PASSWORD": "********"
}
}
}
}
or with Claude Code:
claude mcp add web-algebra -e CERT_PEM_PATH=/path/to/LinkedDataHub/ssl/owner/cert.pem -e CERT_PASSWORD=******** -- uvx --from web-algebra web-algebra-mcp
uvx web-algebra mcp runs the same server.
Environment variables:
| Name | Required | Description |
|---|---|---|
CERT_PEM_PATH |
No | Path to the LinkedDataHub owner certificate (PEM). Only needed for LinkedDataHub operations. |
CERT_PASSWORD |
No | Password for the certificate above. |
OPENAI_API_KEY |
No | OpenAI API key. Only needed for the SPARQLString tool, which asks a model to write the query. |
stdio transport
uv run web-algebra-mcp
Streamable HTTP transport
uv run uvicorn web_algebra.server:app --reload
with CERT_PEM_PATH and CERT_PASSWORD set, as above, for LinkedDataHub.
MCP Inspector config
You can the inspector like this:
npx @modelcontextprotocol/inspector
and then open on the URL printed in its console output, for example:
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=b31e4b3d852b5a2445f45032c484e54e319bf16359585858cf88fe9a90816744
The MCP_PROXY_AUTH_TOKEN is required. If the link does not appear, you need to copy the session token from the console and paste it into inspector's Proxy Session Token config.
Web Algebra's settings:
Claude Desktop tool config from a local checkout
To run the MCP server from a local checkout instead of the published package, add a Web Algebra entry (that uses stdio transport) to the mcpServer configuration your claude_desktop_config.json file:
{
"mcpServers": {
"Web Algebra": {
"command": "uv",
"args": [
"--directory",
"/path/to/Web-Algebra",
"run",
"web-algebra-mcp"
],
"env": {
"CERT_PEM_PATH": "/path/to/LinkedDataHub/ssl/owner/cert.pem",
"CERT_PASSWORD": "********"
}
}
}
}
Leave the command as it is. Those uv run --with arguments are important, otherwise 3rd party packages cannot be found.
On my Mac, the path to uv has to be absolute, otherwise it doesn't work in Claude Desktop 🤷♂️.
CERT_PEM_PATH and CERT_PASSWORD env values are optional.
Questions sur Web-Algebra MCP
Comment ajouter Web-Algebra MCP à Claude Code ?
Exécutez claude mcp add --env 'CERT_PASSWORD=<YOUR_CERT_PASSWORD>' --env 'OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>' web-algebra -- uvx web-algebra dans votre terminal. Ajoutez --scope user pour le rendre disponible dans tous les projets.
Comment ajouter Web-Algebra MCP à Cursor ?
Ouvrez ~/.cursor/mcp.json et ajoutez le serveur sous mcpServers, avec la configuration Cursor indiquée dans la section d'installation ci-dessus.
Quelles opérations le MCP server Web-Algebra expose-t-il ?
Il expose des opérations de lecture et d'écriture de Linked Data (GET, PATCH, POST, PUT), des opérations SPARQL (SELECT, CONSTRUCT, DESCRIBE), l'extraction de schémas, la manipulation d'URI, le contrôle de flux et des outils de création de ressources spécifiques à LinkedDataHub.
Comment installer le MCP server Web-Algebra ?
Ajoutez-le à la configuration de votre client MCP avec la commande uvx, en configurant optionnellement CERT_PEM_PATH et CERT_PASSWORD pour les opérations LinkedDataHub.
Web-Algebra nécessite-t-il une authentification ?
Un certificat de propriétaire LinkedDataHub et un mot de passe ne sont nécessaires que pour les opérations LinkedDataHub, et une clé API OpenAI est uniquement requise pour l'outil SPARQLString ; sinon, la configuration est optionnelle.
Web-Algebra peut-il exécuter des plans JSON prédéfinis ?
Oui, vous pouvez exécuter un fichier de plan JSON directement depuis la ligne de commande.
Quels transports le MCP server prend-il en charge ?
Il prend en charge les transports stdio et streamable HTTP.
