FaxCore
FaxCore Reporting Studio
v6 Read-Only T-SQL & Model Context Protocol Engine
Connecting...
๐Ÿ“ Query Editor & Safety Linter
๐Ÿ›ก๏ธ Safety & Compatibility Assessment
Ready
๐Ÿ“Š Query Results
Awaiting execution...
0 rows
Click "Run Report" or load a preset recipe above to execute a report query.

Tested Join Recipes & Reporting Templates

Pre-built, battle-tested queries with all FaxCore v6 joins, exclusions, and trap mitigations verified.

๐Ÿšซ
Never-Select Columns (Hard Rule):
Never query credentials, passwords, licence keys, internal file paths, or private notes:
fxtb_Users.xUserPwd, fxtb_Messages.xNote, fxtb_Messages.xOverflowNote, fxtb_Messages.xAttachStoragePath, fxtb_Messages.xMID, fxtb_Agents.xPLK, fxtb_Agents_Channels.xChannelLic. SELECT * is strictly prohibited.

Model Context Protocol (MCP) Integration

This application is an official Model Context Protocol server. AI assistants (like Claude Desktop, Antigravity, Cursor, or your software) can discover FaxCore tables, validate queries against SQL Server 2008 compatibility rules, and execute safe read-only reports.

๐Ÿค– Connect with Claude Desktop (stdio mode)

Build once (dotnet build -c Release), then add this to your claude_desktop_config.json. --no-build keeps build output off the protocol stream:

{
  "mcpServers": {
    "faxcore-reporting": {
      "command": "dotnet",
      "args": [
        "run",
        "--no-build",
        "--project",
        "C:\\Development\\Projects\\FaxCore Reporting\\FaxCoreReportingStudio.csproj",
        "--",
        "--stdio"
      ]
    }
  }
}
๐ŸŒ Connect via Streamable HTTP / SSE Endpoint

When the FaxCore Reporting Studio is running as a service or web app, MCP clients and custom software can connect directly to the HTTP endpoint:

http://localhost:5000/mcp
Uses the MCP Streamable HTTP transport. Send your key in the X-Api-Key header (or Authorization: Bearer) when the server requires one. AI clients receive no row values unless the operator changes Mcp:ResultMode.
๐Ÿ› ๏ธ Available MCP Tools
  • faxcore_validate_sql(sql): Evaluates T-SQL query against read-only safety checks, whitelisted tables, Compatibility Level 100, and FaxCore domain traps.
  • faxcore_execute_sql(sql, maxRows): Executes validated read-only SQL against FaxCore v6 database (or simulated mock dataset in offline mode).
  • faxcore_get_table_schema(tableName): Returns metadata, key columns, descriptions, prohibited columns, and join notes for FaxCore tables.
  • faxcore_list_recipes(category): Returns all pre-built, tested join recipes.
  • faxcore_get_recipe(recipeId): Retrieves full SQL and documentation for a specific recipe.
  • faxcore_get_reporting_rules(): Returns official hard rules, traps, and guidelines.
๐Ÿ“‹ AI Prompt Context Snippet

If interacting with an AI chat interface manually without MCP, paste this exact block at the start of your prompt:

You write read-only Microsoft SQL Server (T-SQL) queries for a FaxCore v6 database.

HARD RULES
- SELECT only. Never write INSERT, UPDATE, DELETE, MERGE, TRUNCATE, CREATE, ALTER, DROP, EXEC, GRANT, SELECT INTO or temp tables.
- Use ONLY these tables (schema dbo), each with WITH (NOLOCK):
  fxtb_Messages, fxtb_Messages_Transacts, fxtb_Messages_Transmits_2, fxtb_Messages_Owners, fxtb_Msg_StatusType,
  fxtb_Users, fxtb_Users_Roles, fxtb_Contacts, fxtb_Contact_Addresses, fxtb_Domains, fxtb_Domains_Joints,
  fxtb_Route_IB_Rules, fxtb_Route_Dest_Types, fxtb_DIDPool, fxtb_FaxNumbers,
  fxtb_Agents, fxtb_Agents_Channels, fxtb_Agents_Channels_Groups.
  The only function allowed: dbo.fxfn_RouteByString_Expr_get(xRouteByString).
- NEVER select: fxtb_Users.xUserPwd, fxtb_Messages.xNote, xOverflowNote, xAttachStoragePath, xMID, fxtb_Agents.xPLK, fxtb_Agents_Channels.xChannelLic. Never use SELECT *.
- Compatibility level 100: do NOT use CONCAT, IIF, TRY_CONVERT, TRY_CAST, STRING_AGG, STRING_SPLIT, TRIM, FORMAT, OFFSET/FETCH, LAG/LEAD. Use + for strings and CASE instead of IIF.
- All datetimes are UTC. Always filter fax tables by a date range. Put parameters in DECLARE at the top.

Saved Reports & Scheduled E-mail

Save a report with its form values, run it again in one click, or e-mail it on a schedule. Dates such as today-7 stay relative.

๐Ÿ“Œ Saved reports
๐Ÿ—“ Scheduled e-mail

Query Audit Trail

Every execution attempt (UI and MCP): who, which SQL, outcome. Result rows are never stored.

Time (UTC)CallerChannelOutcomeRowsmsModeSQL
Open this tab to load.