report-intelligence
Allows inspection of SAP Crystal Reports (.rpt) files, providing tools to read report structure, data sources, SQL commands, parameters, formulas, sections, objects, subreports, and running totals.
Report Intelligence Platform (RIP)
Inspect Crystal Reports .rpt files from your coding assistant. The current release is a read-only MCP server with 10 tools for report structure, data sources, SQL commands, parameters, formulas, sections, objects, subreports, and running totals.
Try it on Windows x64 with Node.js 20+ and a compatible, separately installed SAP Crystal Reports runtime:
npm install --global @report-intelligence/cli
rip doctor --report C:\reports\example.rpt
rip agents install codex --reports C:\reportsReplace the example paths with your own report and directory. rip agents install also supports claude, cursor, and vscode. The npm installation includes a binary-only Community worker on Windows x64; SAP runtime components are not included. Setup details · MCP server · Report an issue
Current Focus: Crystal MCP v1
The active milestone is a read-only Crystal Reports MCP. The end-to-end path is:
MCP client -> Node.js MCP server -> Windows Crystal worker -> real .rpt -> validated JSONThe universal Report IR, multi-engine runtime, generalized plugin process manager, cloud platform, and separately deployed core-service plugins are future work. They are not prerequisites for the v1 Crystal reader.
See CRYSTAL_MCP_V1_PLAN.md for the authoritative implementation plan. When older planning or research documents conflict with it, the v1 plan takes precedence.
Related MCP server: AgentKit
Architecture Overview
report-intelligence-platform/
├── apps/
│ ├── mcp-server/ # MCP Server (Node.js/TypeScript)
│ └── cli/ # CLI Tool
├── packages/
│ ├── core/ # Core types, interfaces, utilities
│ ├── crystal-client/ # Public versioned worker protocol and stdio client
│ ├── grpc-transport/ # Experimental transport abstractions
│ ├── plugin-api/ # Plugin interface definitions
│ └── sdk/ # SDK for building plugins
├── docs/ # Public protocols and developer documentation
├── tests/ # Public integration tests and fixture metadata
├── 00 Research/ # Research documentation
├── 01 Specifications/ # Technical specifications
├── 02 Architecture/ # Architecture decisions
├── 03 Notes/ # Development notes
└── 04 Images/ # Diagrams and imagesQuick Start
Milestone status: The public MCP server implements all 10 advertised read tools and has been exercised locally through the separately licensed Crystal worker against multiple real reports. Mock integration coverage is committed; a sanitized, redistributable
.rptfixture is still required before the real-runtime acceptance matrix can run in public CI.
Prerequisites
Node.js 20+
Windows x64 for local
.rptextractionSAP Crystal Reports Runtime compatible with that worker
Installation
# Install dependencies
npm install
# Build all public packages
npm run buildThe published MCP server installs the free-to-use binary-only Community Crystal worker as an optional dependency on Windows x64. The worker source remains in the private commercial repository, and SAP runtime components are not redistributed.
For a consumer installation, use the commands at the top of this README. The MCP server also exposes report-intelligence-mcp doctor. The worker npm release is unsigned; a separate Store MSIX distribution is prepared in scripts/build-community-store-msix.ps1 and will be signed by Microsoft only after Store certification.
Running the MCP Server
# Start the MCP server
npm run start --workspace=apps/mcp-serverCRYSTAL_WORKER_PATH is optional and overrides discovery when selecting a Pro, custom, or separately installed worker.
Crystal Worker Community
@report-intelligence/crystal-worker-community-win32-x64 contains the compiled read-only Community worker and its non-SAP managed dependencies. It is free to use under its included proprietary binary license, but it is not open-source or LGPL-covered. Package contents carry a SHA-256 manifest and deliberately exclude SAP CrystalDecisions.* assemblies.
The MCP server prefers an installed Pro worker when available, then a Store-installed Community worker, and finally the npm Community worker. The future Pro edition will add advanced editing, generation, validation, migration, and supported enterprise deployment capabilities without changing the public worker protocol.
Using the CLI
rip doctor, rip mcp, and rip agents install are implemented. Report reading, search, documentation, validation, and export CLI commands remain placeholders; use the MCP server for report extraction.
Delivery Roadmap
Milestone 0: Align v1 scope, licensing boundary, and documentation
Milestone 1: Wire
read_reportend to end through the real workerMilestone 2: Complete and verify read-only Crystal extraction
Milestone 3: Documentation, dependency analysis, and deterministic search
Milestone 4: Setup diagnostics and optional remote Windows workers
Milestone 5: Safe editing with save-as and read-after-write verification
Milestone 6: Template-based report generation
Milestone 7: Multi-engine support and evidence-driven Report IR
Licensing
This project follows an Open Core model:
Public Platform: GNU Lesser General Public License v3.0 only (
LGPL-3.0-only)Crystal Reports Plugin: Commercial (proprietary)
Enterprise Features: Commercial (proprietary)
See LICENSING.md for the implemented public/commercial source boundary.
Each published workspace has its own npm-facing README and metadata. Maintainers should follow the npm publishing guide for the first release and subsequent OIDC/provenance releases.
MCP Tools
The MCP server currently advertises these tested tools:
Available
read_report- Read full report structureread_metadata- Read validated report metadata and page settingsread_data_sources- Read validated data sources, tables, fields, joins, and commandsextract_sql- Extract non-empty SQL commands with their data source identityread_parameters- Read validated parameter definitions with sensitive values redactedread_formulas- Read validated formulas and dependency referencesread_sections- Read validated section layout settings and contained objectsread_objects- Read flattened validated objects with optional exact section filteringread_subreports- Read validated subreports, embedded metadata/content, and main-to-subreport link fieldsread_running_totals- Read validated running-total evaluation and reset definitions
Successful tool calls return extracted data in the first text content item. When the worker reports incomplete or unsupported extraction, a second JSON text item contains structured warnings with stable codes, messages, and optional report-element paths.
Formula dependencies are classified as fields, formulas, parameters, running totals, or SQL expressions. Database table links and report custom functions are included in the full report model; SDK limitations are surfaced with UNSUPPORTED_DATABASE_JOINS, UNSUPPORTED_SUBREPORT_LINKS, or UNSUPPORTED_CUSTOM_FUNCTIONS warnings.
The following capabilities are planned and will be advertised only after their worker-backed implementations meet the same validation and error-handling standard:
Planned read operations
Search Operations
search_reports- Search across multiple reportssearch_in_report- Search within a single report
Documentation
generate_documentation- Generate docs (markdown/html/openapi)
Validation
validate_report- Validate report integritycheck_integrity- Check file integrity
Export
export_report- Export to PDF, Excel, Word, etc.
Modification (future safe-editing milestone)
update_parameter- Update parameter valuesupdate_formula- Update formula syntaxupdate_formatting- Update object formattingupdate_text- Update text objectssave_report- Save report to new file
Generation (future template-generation milestone)
generate_report- Generate from specificationgenerate_from_template- Generate from templategenerate_from_natural_language- Generate from prompt
Contributing
Fork the repository
Create a feature branch
Make your changes
Run tests:
npm testRun strict type checking:
npm run typecheckSubmit a PR
Project Structure Details
Core Package (@report-intelligence/core)
Contains all shared types and utilities:
Report, Formula, Parameter, Section, DataSource types
Search, Validation, Documentation types
Zod schemas for validation
Plugin API (@report-intelligence/plugin-api)
Defines the plugin interface:
Plugininterface with capabilitiesReader, Writer, Generator, Renderer interfaces
Validator, Exporter, Searcher, Documenter interfaces
Dependency Analyzer, Modifier interfaces
Crystal Client and Worker Editions
The public Crystal client contains shared models, the worker protocol, transport clients, test doubles, and developer helpers. Community and Pro SAP Crystal runtime adapter source is maintained in the separate commercial repository. The compiled Community worker is distributed through npm under its own free-to-use binary license.
MCP Server (@report-intelligence/mcp-server)
Model Context Protocol server:
Exposes tools to AI agents
Manages plugin lifecycle
Handles resource/prompt requests
Crystal Workers (C# .NET, proprietary implementations)
Windows worker process:
Hosts SAP Crystal Reports Runtime
Executes Crystal SDK operations
Communicates through the versioned worker protocol, using stdio first
Offers read-only extraction in Community and future advanced capabilities in Pro
Environment Variables
Variable | Description | Required |
| Optional override path to a Community, Pro, or custom CrystalWorker executable | No |
| JSON array of worker process arguments | No |
| Per-request worker timeout in milliseconds | No |
| OS-delimited roots from which | No |
| Maximum accepted | No |
| Log level (debug/info/warn/error) | No |
See the worker protocol v1 specification for the stdio contract.
Research Documentation
The 00 Research/ directory contains comprehensive research on:
Crystal Reports architecture, objects, formulas, rendering
MCP protocol architecture and implementation
Language Server Protocol patterns
Plugin architecture comparisons (VS Code, Terraform, Eclipse, MCP)
Reporting engine comparisons (8 engines)
Universal reporting concepts
License
All project-owned source in this repository is licensed under LGPL-3.0-only. The LGPL terms are in LICENSE, with the incorporated GPLv3 terms in COPYING. Separate applications may use the public libraries under LGPL's linking terms without placing the entire application under LGPL. The Crystal runtime adapter and Windows worker are separate processes distributed under commercial terms; see LICENSING.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI research on companies and industries — one MCP tool per research domain.
Let AI agents query data and act across all your business apps via MCP.
- SchemaOAuthai.schemalabs
The AI that understands raw data: Schema over your tables and databases, as MCP tools.
EU compliance corpus across 8 frameworks (NIS2, DORA, AI Act, ISO 27001 + more) via MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to interact with small business data systems through tools for document processing, data queries, and report generation, using MCP primitives for structured context.MIT
- AlicenseNot gradedqualityBmaintenanceExposes enterprise KPIs, health scores, forecasting, and anomaly detection as MCP tools, resources, and prompts for use by any MCP-compatible agent.AGPL 3.0
- FlicenseNot gradedqualityBmaintenanceEnables natural-language Q&A, human-approved actions, and dashboard generation over a data ontology via MCP.-
- AlicenseNot gradedqualityCmaintenanceOne MCP interface for AI-driven Power BI semantic-model engineering and PBIR/PBIP report authoring.MIT