Yassin Bahri
Entries
Real SAP calls need the proprietary [SAP NetWeaver RFC SDK](external:sap-nw-rfc-sdk) and the `pyrfc==3.3.1` release the README calls archived and yanked, on Python 3.11, so without those only the demo backend answers. Not over HTTP as it stands: credentials are read from the environment for stdio, and the README says not to expose the server over HTTP without implementing the MCP authorization specification and deployment-level rate limiting. Multi-tenant auth and RBAC beyond the one server-wide policy, rate limiting, metrics and tracing, and deployment packaging are listed as not built. The result limits protect the client and not the system, since the README states they cannot reduce work already performed inside SAP, and the MCP tool annotations that describe read and write risk are advisory metadata rather than an authorisation boundary, so the service account's `S_RFC` and table authorisations are still what decides.
MCP server calling RFC-enabled function modules behind an allowlist
An early alpha release whose README says to pin the version and test recipes against non-production data first. HANA synchronisation is snapshot-only and does not reconcile deleted rows, so a document for a row deleted in the source stays in the index. A recipe's field allow-list does not decide what the service account may read: the README states that field allow-listing does not replace SAP authorization, and that the package infers no SAP module semantics, authorization scope or safe fields from table names. Only Business Partner has a built-in recipe, every other dataset needs a `KnowledgeRecipe` written for it, and [Qdrant](external:qdrant) local mode is stated to be for development and smaller indexes.
Python library turning OData or HANA records into chunked documents
Details
History
- pyrfc-mcpThe 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.
- pyrfc-mcpHanded over as a URL. Filed behind the ABAP door because the system it reaches is an ABAP one and the reader who points it at theirs is working on that system, which is the opposite case from [open-rfc](artifact:marianfoo-open-rfc), a client an ABAP developer would never install. Three edges: [MCP servers](capability:mcp-servers) for the tool surface over function modules, [agent access to your code](capability:agent-code-access) for `read_abap_source` alone, and [tool governance](capability:tool-governance) for the allowlists, the table guard, the result limits and the audit log, which the README states as the point of the server rather than as a footnote. [RFC connectivity](capability:rfc-connectivity) was considered and left off: the RFC client here is [PyRFC](external:pyrfc), so nobody installs this to call a function module from their own code. No flavor is stated, since the README names no ABAP release or cloud edition, and `auth` and `tool_count` are left out because the README names neither a mechanism nor a number.
- sap-knowledge-pipelineHanded over as a URL. Filed behind the BTP door because what it reads is an SAP OData service and [SAP HANA](artifact:sap-hana), and neither the library nor its recipes touch CAP, UI5 or ABAP; the repository's own topics are rag, rag-pipeline, sap, sap-btp and sap-hana. One edge, [retrieval-augmented generation](capability:retrieval-augmented-generation): the capability's CAP coverage says the layer above the vector, splitting long text into chunks and deciding what goes into the prompt, is hand-written in every entry there, and that layer is what this library is. [Data import and export](capability:data-import-export) was considered and left off, since that capability is about a file somebody supplies rather than records read out of a live service, and [OData](capability:odata) is about serving a model as OData rather than consuming one. The optional SAP `hdbcli` driver is named in the prose and carries no edge: SAP's Node.js driver is the artifact [@sap/hana-client](artifact:sap-hana-client), so its Python sibling belongs in the graph the same way and not as an external, which is an editorial decision rather than one for this batch.
- First entry seenDiscovered via Added by hand.
Profile
For your agent
- Ref
actor:yassinbahri- JSON
- /actors/yassinbahri.json
- MCP
- Connecting an agent