{"ref":"artifact:neoimpulse-cap-js-mcp","page":"/artifacts/neoimpulse-cap-js-mcp","json":"/artifacts/neoimpulse-cap-js-mcp.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"ecosystem":"cap","origin_ring":"independent","maintainers":["actor:neoimpulse"],"provenance":{"discovered_via":[{"source":"source:npm","channel":"cds-plugin"},{"source":"source:npm","channel":"@cap-js"}],"first_seen":"2026-09-08"},"id":"neoimpulse-cap-js-mcp","name":"@neoimpulse/cap-js-mcp","artifact_type":"cds-plugin","domain":"ai-and-agents","description":{"one_line":"An MCP server inside a CAP application, with default tools that read the running model and query entities, plus configurable application tools, prompts and resources.","short":"MCP server inside a CAP application with model and query tools","what_it_solves":"Default tools read the running application’s compiled CDS model and query entities, while configured modules extend its tools, prompts and resources. The default tool implementation is inspired by [@cap-js/mcp-server](artifact:cap-js-mcp-server). Built-in product CRUD uses in-memory demo data; operations against real application services require custom implementation, with API-key authentication configured separately."},"links":{"npm":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp"},"identity":{"author":"neoimpulse GmbH","license":"MIT"},"compat":{"runtimes":["node"]},"provides":[{"capability":"capability:mcp-servers","facets":[{"key":"mcp_exposure_source","value":["Compiled CDS model"],"source":{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"These tools work with **any CAP application** and use the compiled CDS model from the running application.","checked":"2026-10-12"},"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"These tools work with **any CAP application** and use the compiled CDS model from the running application.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"\"path\": \"./srv/lib/mcp-tools\"","checked":"2026-10-12"}],"applies_to":{"ecosystems":["cap"],"flavors":["node"]}},{"key":"mcp_operations","value":"Default model/query tools; application business/write operations need custom tools; product CRUD is an in-memory demo","source":{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**`execute_odata_query`** - Execute OData queries","checked":"2026-10-12"},"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**`execute_odata_query`** - Execute OData queries","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"The built-in product catalog tools are for demonstration and testing purposes only.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"In a real application, you would implement tools that interact with your actual CAP services and data models.","checked":"2026-10-12"}],"applies_to":{"ecosystems":["cap"],"flavors":["node"]}},{"key":"mcp_context","value":["MCP resources","MCP prompts","Model descriptions via tools"],"source":{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**MCP Resources**: File and data resource access (extensible)","checked":"2026-10-12"},"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**MCP Resources**: File and data resource access (extensible)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**MCP Prompts**: Template-based prompt system (extensible)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**Resources** (`resources.extends`)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — README","quote":"Returns full CSN definitions with annotations and metadata","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — README","quote":"**`get_cds_model`** - Get the complete CDS model","checked":"2026-10-12"}],"applies_to":{"ecosystems":["cap"],"flavors":["node"]}},{"key":"mcp_execution_path","value":["CAP service calls","CDS query fallback","Custom tool handlers"],"source":{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"Service-aware routing (uses service instances if available)","checked":"2026-10-12"},"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"Service-aware routing (uses service instances if available)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"Fallback to local execution (`cds.run()`)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"const srv = await cds.connect.to('OrderService');","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"return await srv.send('processOrder', args);","checked":"2026-10-12"}],"applies_to":{"ecosystems":["cap"],"flavors":["node"]}},{"key":"mcp_exposure_control","value":["Tool module configuration"],"source":{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"\"path\": \"./srv/lib/mcp-tools\"","checked":"2026-10-12"},"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"\"path\": \"./srv/lib/mcp-tools\"","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"// 4. No inheritance - just return main instance","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"// Override: Tool exists in main class","checked":"2026-10-12"}],"applies_to":{"ecosystems":["cap"],"flavors":["node"]}}],"what_it_does":"Runs an MCP server inside a CAP [Node.js](external:nodejs) application with default model/query tools and configured application modules. Default queries use service instances when available and otherwise cds.run(); custom operations supply their own service calls. The built-in product CRUD tools use in-memory demo data. Default tools read the running application’s compiled CDS model, including model definitions returned by search_model and get_cds_model. Configured tool, resource and prompt modules can inherit and override defaults; file/data resources and prompt templates are extensible. Custom business tools own their dispatch.","sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"Service-aware routing (uses service instances if available)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"Fallback to local execution (`cds.run()`)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"They use in-memory data storage and are not intended for production use.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"These tools work with **any CAP application** and use the compiled CDS model from the running application.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"\"path\": \"./srv/lib/mcp-tools\"","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**`execute_odata_query`** - Execute OData queries","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"The built-in product catalog tools are for demonstration and testing purposes only.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"In a real application, you would implement tools that interact with your actual CAP services and data models.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**MCP Resources**: File and data resource access (extensible)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**MCP Prompts**: Template-based prompt system (extensible)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**Resources** (`resources.extends`)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"const srv = await cds.connect.to('OrderService');","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"return await srv.send('processOrder', args);","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"// 4. No inheritance - just return main instance","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"// Override: Tool exists in main class","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — README","quote":"Returns full CSN definitions with annotations and metadata","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — README","quote":"**`get_cds_model`** - Get the complete CDS model","checked":"2026-10-12"}]}],"alternative_to":["artifact:cap-js-mcp"],"source_available":false,"history":[{"date":"2026-09-09","field":"links.repo","from":"git+https://github.com/neoimpulseGmbH/cap-js-mcp.git","to":"npm only","reason":"The repository declared in package.json returns 404. npm is the only address that resolves, and source_available says so."},{"date":"2026-09-09","field":"description.one_line","from":"A CDS plugin to trim string attributes automatically","to":"An MCP server inside a CAP application, where the tools, prompts and resources are modules you point it at rather than the model it derives.","reason":"The npm description is wrong — it is the sibling trim plugin's line, pasted. Anyone reading the registry entry, agents included, is told this package trims strings. It does not."},{"date":"2026-10-12","field":"description.one_line and description.what_it_solves","from":"An MCP server inside a CAP application, where the tools, prompts and resources are modules you point it at rather than the model it derives.","to":"An MCP server inside a CAP application, with default tools that read the running model and query entities, plus configurable application tools, prompts and resources.","reason":"The published npm README documents default model/query tools as well as configurable modules; the previous module-only wording contradicted those facts."},{"date":"2026-10-12","field":"provides[mcp-servers].facets and what_it_does","from":"[{\"key\":\"mcp_exposure_source\",\"value\":\"Configured application component modules and the compiled CDS model\"},{\"key\":\"mcp_operations\",\"value\":\"Entity queries; real business/write operations require custom modules\"},{\"key\":\"mcp_context\",\"value\":\"Extensible file/data resources and prompt-template modules\"}]","to":"[{\"key\":\"mcp_exposure_source\",\"value\":\"Compiled CDS model plus configured tool/resource/prompt modules\"},{\"key\":\"mcp_operations\",\"value\":\"Default model/query tools; application business/write operations need custom tools; product CRUD is an in-memory demo\"},{\"key\":\"mcp_context\",\"value\":\"Extensible file/data resources and prompt templates; modules can inherit and override defaults\"},{\"key\":\"mcp_execution_path\",\"value\":\"Default query tool uses a service instance when available, with cds.run() fallback; custom business tools own their dispatch\"},{\"key\":\"mcp_exposure_control\",\"value\":\"Configured component modules and inheritance/overrides determine registered tools\"}]","reason":"The comparison distinguishes execution and surface selection at the stated runtime, retaining conditional operations and target restrictions."},{"date":"2026-10-12","field":"provides.mcp-servers.facets.mcp_exposure_source.value","from":"Compiled CDS model plus configured tool/resource/prompt modules","to":"Compiled CDS model","reason":"Converts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained."},{"date":"2026-10-12","field":"provides.mcp-servers.facets.mcp_context.value","from":"Extensible file/data resources and prompt templates; modules can inherit and override defaults","to":"MCP resources; MCP prompts; Model descriptions via tools","reason":"Converts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained."},{"date":"2026-10-12","field":"provides.mcp-servers.facets.mcp_execution_path.value","from":"Default query tool uses a service instance when available, with cds.run() fallback; custom business tools own their dispatch","to":"CAP service calls; CDS query fallback; Custom tool handlers","reason":"Converts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained."},{"date":"2026-10-12","field":"provides.mcp-servers.facets.mcp_exposure_control.value","from":"Configured component modules and inheritance/overrides determine registered tools","to":"Tool module configuration","reason":"Converts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained."}],"drafted_with_ai":true,"lineage":[{"target":"artifact:cap-js-mcp-server","kind":"inspired-by","source":{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"Neoimpulse — default-tool inspiration","quote":"The `mcp-tools-default.js` implementation is inspired by the official [@cap-js/mcp-server](https://github.com/cap-js/mcp-server)","checked":"2026-10-12"}}]},"effective_normative_relations":[{"instrument":"instrument:sap-developer-license-3-2-cap","relation":"use-constrained-by","sections":["1","2","3"],"applies_when":"A cds-plugin is used with SAP CAP materials, or an artifact is explicitly identified as a CAP plugin or application.","note":"This is inherited applicability, not a licence verdict about the artifact itself. Review the agreement for the actual materials and use; an explicit artifact relationship to another revision takes precedence.","scope":{"kind":"artifact"},"sources":[{"url":"https://cap.cloud.sap/resources/license/developer-license-3_2_CAP.txt","title":"SAP Developer License Agreement 3.2 CAP","checked":"2026-09-16","quote":"documentation, plug-ins, templates, scripts and sample code, libraries, software development kits"}],"inherited_from":"cap-plugins-and-applications","relevant_capabilities":["agent-systems-access","async-processing","data-import-export","database-connectors","deployment","destinations","llm-integration","mcp-servers","plugin-authoring","replication","retrieval-augmented-generation","rfc-connectivity"]}],"readings":{"liveness":[{"label":"Maintenance","tier":"good","evidence":"released this month"},{"label":"Continuity","tier":"good","evidence":"3 publishers on npm"},{"label":"Repository","tier":"unknown","evidence":"no repository data"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":">=9 — includes cds 10 and 9"},{"label":"Survived majors","tier":"good","evidence":"released before and after @sap/cds 10"},{"label":"Maintainer's CI","tier":"unknown","evidence":"no repository data"}],"practice":[{"label":"Tests","tier":"unknown","evidence":"not crawled"},{"label":"Docs","tier":"good","evidence":"README 30 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":35,"unit":"installs/week"},{"value":null,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","latest_version":"1.0.7","majors":{"1":{"version":"1.0.0","date":"2025-09-30"}},"license":"MIT","first_release":"2025-09-30","last_release":"2026-10-21","releases":8,"cadence_days":1,"maintainers":3,"peer_cds":">=9","test_script":false,"types":false,"downloads_weekly":35,"months_since_release":0,"dormant":false,"repository_directory":null,"dependencies":2,"node_engine":null,"downloads_monthly":43,"npm_document_version":"1.0.6","npm_document_integrity":"sha512-qxCLebuHGXE5ElpjbF2i+PREXrhsm5Fm6/5YEULMyYN57mIngQRrUg1N7mNngQ/TRQwvKHc5J/440wyeadT35A==","npm_document_tarball":"https://registry.npmjs.org/@neoimpulse/cap-js-mcp/-/cap-js-mcp-1.0.6.tgz","readme_path":"README.md","readme_bytes":30917,"readme_source":"npm","changelog":false,"license_file":true,"license_path":"LICENSE","license_name":"Apache License 2.0, January 2004","npm_repository":"not reachable"},"release_notes":{"license":"Apache License 2.0, January 2004","quotable":false,"versions":[{"version":"1.0.7","date":"2026-10-21"},{"version":"1.0.6","date":"2025-10-25"},{"version":"1.0.5","date":"2025-10-25"},{"version":"1.0.4","date":"2025-10-24"},{"version":"1.0.3","date":"2025-10-23"},{"version":"1.0.2","date":"2025-10-01"},{"version":"1.0.1","date":"2025-10-01"},{"version":"1.0.0","date":"2025-09-30"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:neoimpulse","name":"neoimpulse GmbH","json":"/actors/neoimpulse.json"}],"contributors":[],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}