Tested Join Recipes & Reporting Templates
Pre-built, battle-tested queries with all FaxCore v6 joins, exclusions, and trap mitigations verified.
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.
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"
]
}
}
}
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
X-Api-Key header (or Authorization: Bearer) when the server requires one. AI clients receive no row values unless the operator changes Mcp:ResultMode.
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.
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.
Query Audit Trail
Every execution attempt (UI and MCP): who, which SQL, outcome. Result rows are never stored.
| Time (UTC) | Caller | Channel | Outcome | Rows | ms | Mode | SQL |
|---|---|---|---|---|---|---|---|
| Open this tab to load. | |||||||