Skip to main content
Glama

SPARQL MCP Server

by sib-swiss
Cargo.toml4.7 kB
[package] name = "sparql-mcp" description = "A Model Context Protocol (MCP) server exposing an HTTP POST endpoint to help users write SPARQL queries for various open-access SPARQL endpoints, developed for the SIB Expasy portal." version = "0.0.1" authors = ["Vincent Emonet <vincent.emonet@gmail.com>"] edition = "2024" repository = "https://github.com/sib-swiss/sparql-mcp" readme = "./README.md" license-file = "LICENSE" keywords = ["sparql", "llm", "mcp", "open data"] categories = ["science", "data"] [lib] path = "src/lib.rs" crate-type = ["cdylib", "rlib"] [[bin]] name = "sparql-mcp" path = "src/main.rs" [dependencies] rmcp = { version = "0.6", features = [ "server", "transport-streamable-http-server", "transport-sse-server", "transport-io", "client", "transport-streamable-http-client", "transport-streamable-http-client-reqwest", "transport-child-process", "tower", # "reqwest", # "auth" ] } tokio = { version = "1", features = ["full"] } # features = ["rt-multi-thread", "macros", "net", "time", "io-util", "sync", "signal"] futures-util = "0.3" async-stream = "0.3" uuid = { version = "1.0", features = ["v4"] } axum = { version = "0.8", features = ["macros"] } axum-openapi3 = "0.2" utoipa = { version = "5", features = ["macros", "axum_extras", "debug"] } utoipa-swagger-ui = { version = "9", features = ["axum"] } utoipa-axum = { version = "0.2" } tower-http = { version = "0.6", features = ["cors", "fs"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tracing = "0.1" tracing-subscriber = { version = "0.3", features = [ "env-filter", "std", "fmt", ] } reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } llm = { git = "https://github.com/vemonet/llm", branch = "add-normalize-response", default-features = false, features = [ "rustls-tls", "mistral", "groq", "openai", "openrouter", ] } spargebra = "0.3" lancedb = "0.21" arrow = "55.1" oxigraph = "0.4" fastembed = "5.1" clap = { version = "4.5", features = ["derive", "env"] } # regex = "1.11.2" # tokio-stream = "0.1" # schemars = { version = "1", features = ["derive"] } # [patch.crates-io] # native-tls = { version = "0.2.14", optional = true, default-features = false } [profile.release] lto = true [package.metadata.release] push = true pre-release-hook = ["git-cliff", "-o", "CHANGELOG.md", "--tag", "{{version}}"] # post-release-hook = ["bash", "-lc", "git add CHANGELOG.md && git diff-index --quiet HEAD || git commit --amend --no-edit"] [package.metadata.git-cliff.git] commit_parsers = [ { message = "^feat", group = "⛰️ Features" }, { message = "^fix", group = "🐛 Bug Fixes" }, { message = "^doc", group = "📚 Documentation" }, { message = "^perf|DataOriented", group = "⚡ Performance" }, { message = "^refactor", group = "🚜 Refactor" }, { message = "^style|Formatting", group = "🎨 Styling" }, { message = "^test", group = "🧪 Testing" }, { message = "^ci", group = "⚙️ Continuous Integration" }, { message = "^chore", group = "🛠️ Miscellaneous Tasks" }, { body = ".*security", group = "🛡️ Security" }, { message = "^revert", group = "◀️ Revert" }, ] conventional_commits = true filter_unconventional = true split_commits = false protect_breaking_commits = true # Dont skip breaking changes when matching a skipping commit_parser filter_commits = false tag_pattern = "v?[0-9].*" topo_order = false # Sort the tags topologically sort_commits = "oldest" [package.metadata.git-cliff.changelog] header = """ # 📜 Changelog\n All notable changes to this project will be documented in this file.\n """ # Template for the changelog: https://keats.github.io/tera/docs body = """ {% if version %}\ {% if previous.version %}\ ## [{{ version | trim_start_matches(pat="v") }}](<REPO>/compare/{{ previous.version }}..{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }} {% else %}\ ## [{{ version | trim_start_matches(pat="v") }}](<REPO>/tree/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }} {% endif %}\ {% else %}\ ## [unreleased] {% endif %}\ {% for group, commits in commits | group_by(attribute="group") %} ### {{ group | upper_first }} {% for commit in commits %} - {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first | trim }} - ([{{ commit.id | truncate(length=7, end="") }}](<REPO>/commit/{{ commit.id }}))\ {% endfor %} {% endfor %}\n """ trim = true footer = """ <!-- generated by git-cliff --> """ postprocessors = [ { pattern = '<REPO>', replace = "https://github.com/sib-swiss/sparql-mcp" }, ]

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sib-swiss/sparql-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server