{"ref":"artifact:lemaiwo-btp-sap-odata-to-mcp-server","page":"/artifacts/lemaiwo-btp-sap-odata-to-mcp-server","json":"/artifacts/lemaiwo-btp-sap-odata-to-mcp-server.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"lemaiwo-btp-sap-odata-to-mcp-server","name":"btp-sap-odata-to-mcp-server","artifact_type":"mcp-server","ecosystem":"btp","serves_ecosystems":["abap"],"domain":"ai-and-agents","origin_ring":"independent","description":{"one_line":"Exposes every OData service on an S/4HANA or ECC system as MCP tools, in three discovery levels so a large catalogue does not have to be loaded at once.","short":"Exposes S/4HANA or ECC OData services as MCP tools","what_it_solves":"Pointing an agent at a whole ERP's OData catalogue is a token problem before it is anything else, and the three levels are the answer: level one is a lightweight list of services and entities, level two fetches full metadata for the one you chose, level three executes authenticated CRUD against it. \"Show me 10 banks\" becomes `$top=10` on the Bank entity; \"update bank 1 to have street number 5\" becomes a PATCH. Deployed as a Node application on BTP Cloud Foundry, reaching the system through a BTP Destination.","when_not_to_use":"It puts create, update and delete on business entities behind natural language. Whatever the destination's principal may change, an agent may change — and \"create a new customer\" is a sentence, not a form somebody signed off."},"links":{"repo":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server"},"identity":{"license":"MIT"},"maintainers":["actor:lemaiwo"],"compat":{"runtimes":["node"],"deployment":["cf"]},"provides":[{"capability":"capability:agent-systems-access","what_it_does":"Turns a whole S/4HANA or ECC OData catalogue into tools without loading it all at once — a lightweight discovery pass, metadata on demand, then CRUD.","sources":[{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"SAP OData to MCP Server for BTP — README","checked":"2026-09-10","quote":"exposing all OData services as dynamic MCP tools"}]}],"provenance":{"discovered_via":[{"source":"source:sap-ai-mcp-servers"}],"first_seen":"2026-09-10"},"history":[{"date":"2026-09-10","field":"entry","from":null,"to":"created","reason":"Triaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused."},{"date":"2026-10-09","field":"provides","from":"capability:mcp-servers","to":"capability:agent-systems-access","reason":"The concern it answers is reaching into an SAP system from outside, split out of MCP servers on this day; the sentence on the edge is unchanged."}],"type_properties":{"runs":{"value":["central-server","local-process"],"sources":[{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"For deployment to SAP BTP, see [DEPLOYMENT.md](./docs/DEPLOYMENT.md)"},{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"For local development and testing, see [LOCAL_RUN.md](./docs/LOCAL_RUN.md)"}]},"transports":{"value":["http","stdio"],"sources":[{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"**Streamable HTTP** (recommended)"},{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"**Stdio** for command line usage"}]},"auth":{"value":["destination","principal-propagation","oauth"],"sources":[{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"Uses BTP Destination service for S/4HANA or ECC authentication"},{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"Supports Principal Propagation and OAuth2"}]},"tool_count":{"value":3,"source":{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"The server exposes **3 progressive discovery tools** instead of hundreds of individual CRUD tools"}},"read_only":{"value":false,"source":{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"Executes PATCH operation on Bank entity"}},"guardrails":[{"source":{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"Request rate limiting (configurable)"}},{"source":{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"DNS rebinding attack prevention"}},{"source":{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"CORS protection with configurable origins"}},{"source":{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"Automatic session expiration (24h default)"}},{"source":{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"Safe entity deletion with confirmation"}},{"source":{"url":"https://github.com/lemaiwo/btp-sap-odata-to-mcp-server","title":"btp-sap-odata-to-mcp-server — README","checked":"2026-09-11","quote":"DISABLE_READ_ENTITY_TOOL=true"}}]},"drafted_with_ai":true,"contributors":["actor:arunkrishnamoorthy","actor:lemaiwo","actor:marianfoo","actor:smarchesini-avvale"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"poor","evidence":"13 months since release"},{"label":"Continuity","tier":"good","evidence":"4 contributors, 1 publisher"},{"label":"Repository","tier":"good","evidence":"pushed 2026-05, not archived"}],"compatibility":[{"label":"Declared for","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Survived majors","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"npm test"},{"label":"Docs","tier":"good","evidence":"docs/ with 8 pages, README 11 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":12,"unit":"installs/week","note":"More people watching than installing — noticed deliberately rather than pulled in."},{"value":140,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","latest_version":"1.0.1","majors":{"1":{"version":"1.0.0","date":"2025-09-21"}},"license":"MIT","first_release":"2025-09-21","last_release":"2025-09-21","releases":2,"cadence_days":null,"maintainers":1,"repository":"git+https://github.com/Raistlin82/btp-sap-odata-to-mcp-server-optimized.git","peer_cds":null,"test_script":true,"types":true,"downloads_weekly":12,"stars":140,"forks":69,"open_issues":21,"archived":false,"pushed_at":"2026-05-22","license_spdx":"MIT","org_owned":false,"default_branch":"main","contributors":4,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":11228,"docs_files":8,"changelog":false,"license_file":true,"dts_files":1,"readme_path":"README.md","readme_sha":"005c2e39a86e9d66cf09431c2d376446905fb088","months_since_release":13,"dormant":true,"repository_directory":null,"dependencies":24,"node_engine":"18.x || 20.x || 22.x || 24.x","downloads_monthly":112,"created_at":"2025-09-03T14:10:50Z","open_prs":12,"first_commit":"2025-09-03","last_commit":"2026-05-22","commits":55,"repo_read":"2026-10-25"},"release_notes":{"license":"MIT","quotable":true,"versions":[{"version":"1.0.1","date":"2025-09-21"},{"version":"1.0.0","date":"2025-09-21"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:lemaiwo","name":"Wouter Lemaire","json":"/actors/lemaiwo.json"}],"contributors":[{"ref":"actor:arunkrishnamoorthy","name":"Arun Krishnamoorthy","json":"/actors/arunkrishnamoorthy.json"},{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"},{"ref":"actor:smarchesini-avvale","name":"Sebastiano Marchesini","json":"/actors/smarchesini-avvale.json"},{"ref":"actor:lemaiwo","name":"Wouter Lemaire","json":"/actors/lemaiwo.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}