REPORTS FOR YOUR AGENT
From analysis
to a finished report.
Connect ExcelDashboard AI to your Agent. Turn verified data and insights into visual reports, follow the live preview, and refine the result in the editor.
ExcelDashboard AI MCP is a data report generation service for AI Agents. After analyzing data, your Agent uses two MCP tools to create visual reports, track generation, and get live preview links.
Streamable HTTP·OAuth·Two tools: create & track
Q3 PERFORMANCE REVIEW
Steady spend. Stronger returns.
$30k
Ad spend
$105k
Attributed revenue
3.50x
ROAS
Monthly attributed revenue (USD) · fixed 7-day click window
Validate channel differences and attribution before scaling the budget.
Analyze in your Agent
Your Agent reads files and verifies calculations.
Preview as it generates
Get a report link immediately and follow the progress.
Refine and deliver
Refine the content and use exports in the website editor.
GET STARTED
Your first report, in three steps
You need an account, a workspace, and a client supporting remote MCP and browser authorization. MCP provides the tools; the Skill guides the workflow.
Install the report Skill
Install from SkillHub into your Agent’s skills directory. If persistent installation is unavailable, read the full guide in this conversation.
Installation optionsAdd the MCP server
Add the server URL and select Streamable HTTP. WorkBuddy has been verified in our test environment.
Authorize and start
Sign in and select a workspace when prompted. After discovering create_report and get_report, provide your data and describe the report you want.
https://www.exceldashboard.ai/mcp
WorkBuddy JSON configuration
{
"mcpServers": {
"algforce-reports": {
"type": "streamableHttp",
"url": "https://www.exceldashboard.ai/mcp",
"timeout": 30000
}
}
}You can also ask your Agent to help connect
Copy this English instruction to your Agent. Automatic setup depends on the client; browser consent still requires you.
Read https://www.exceldashboard.ai/mcp.md, including its complete report Skill and outline reference. Follow https://skillhub.cn/install/skillhub.md and install @org-9c0xwtir/algforce-report-v1 from https://skillhub.cn/skills/org-9c0xwtir/algforce-report-v1 in this client's supported skills directory, preserving its references, and configure ExcelDashboard AI MCP at https://www.exceldashboard.ai/mcp using Streamable HTTP. Guide me through browser OAuth and workspace selection. Verify connection by listing tools; do not create a report until I request one. If persistent Skill installation is unsupported, follow the complete guide in this conversation and explain that it is not installed. If MCP configuration or OAuth is unsupported, explain the supported manual steps and stop before tool calls. Never claim success without verifying the exposed tools.
CLIENT GUIDES
Choose your client
WorkBuddy
Connection and report generation verified in our test environment
Read setup guide →
Codex
Based on official documentation; not yet tested with this service
Read setup guide →
Claude Code
Based on official documentation; not yet tested with this service
Read setup guide →
Hermes Agent
Based on official documentation; not yet tested with this service
Read setup guide →
OpenClaw
Based on official documentation; not yet tested with this service
Read setup guide →
Official documentation reviewed: · The exact tested WorkBuddy version was not recorded; other clients still need integration testing.
REPORT SKILL
Give your Agent the report workflow
From analysis and outlines to creation, tracking, and presentation. Instructions are in English; reports follow your requested language.
Install via SkillHub@org-9c0xwtir/algforce-report-v1 · v1.0.0
Follow https://skillhub.cn/install/skillhub.md to install @org-9c0xwtir/algforce-report-v1 from SkillHub (https://skillhub.cn/skills/org-9c0xwtir/algforce-report-v1) in this client's supported skills directory, preserving references/. Determine the correct directory for this Agent. Follow the client's permission requirements and explain unsupported steps. Restart or reload the client if needed. If persistent installation is unsupported, explain that limitation and use the complete instructions from the MCP introduction page for the current conversation instead; do not claim the Skill is installed. Installing the Skill does not configure MCP or complete OAuth.
Use SkillHub CLI
Replace the example directory with your Agent’s actual skills directory; reload the client if needed.
skillhub install '@org-9c0xwtir/algforce-report-v1' --dir '/path/to/your/agent/skills'Official installation guideTOOL REFERENCE
Two tools. One delivery workflow.
create_reportoutline · locale?
Create a report asynchronously from a full outline. Get a job ID and preview link immediately.
get_reportjob_id
Read progress and results, including page counts, status, and the report link.
Start with a request like this
Agency client review
Analyze this client campaign dataset and create a 3-page report covering spend, return, measurement definitions, and next steps.
Sales performance review
Validate revenue and growth in this sales file, compare regions, and create a management report.
Executive briefing
Turn these verified business metrics into a report with key changes, evidence, limitations, and priority actions.
SYNTHETIC DEMONSTRATION
See how a three-page client review works
Validate quarterly spend of USD 30,000, attributed revenue of USD 105,000, and ROAS of 3.50x, then organize three pages: overview, definitions, and actions. Includes a full copyable outline; all data is synthetic.
A complete guide for Agents
/mcp.mdAgent quick start
Read https://www.exceldashboard.ai/mcp.md for the full Skill, outline format, tool arguments, and synthetic example. Install via SkillHub if supported; otherwise follow the complete guide in the current conversation without claiming persistent installation. Configure MCP, let the user complete OAuth and workspace selection, then discover the actual tools.
Only create when requested. Send outline and optional locale; do not send title, workspace_id, idempotency_key, or upload parameters. Save job_id, show the exact report_url, and poll serially using poll_after_seconds. Stop on completed or failed. After a creation timeout without job_id, submission is uncertain: ask before recreating. Open previews internally only when an actual client tool supports it.
Read the complete English Skill
name: algforce-report description: Analyze user-provided data or a report topic, prepare an AlgForce report outline, and create and track the report through the AlgForce MCP tools. Use when a user asks for an AlgForce data analysis report or wants to track one.
AlgForce Data Analysis Reports
Use the current client's file-reading, computation, and web-search capabilities to complete the analysis. AlgForce generates reports from the resulting outline. This Skill orchestrates only two MCP tools: create_report and get_report.
These instructions are written in English. User-facing replies and report content should follow the user's requested language; the instruction language does not require English report content.
Tool Contract
| Tool | Parameters | Result |
|---|---|---|
create_report | Required outline: a nonempty Markdown string following the outline reference. Optional locale: a string, default zh-CN. | job_id, status: "running", report_url, and poll_after_seconds. |
get_report | Required job_id: the string returned by creation. | status, stage, page counts, report_url, and completion or failure details. |
Create using {"outline":"<complete Markdown following references/outline-format.md>","locale":"en"}. The outline text in this example is a placeholder: replace it with the complete analyzed report outline. Query using {"job_id":"<returned job_id>"} and replace the placeholder with the actual returned value.
A creation result has the form {"job_id":"<job UUID>","status":"running","report_url":"<actual preview URL>","poll_after_seconds":15}. Status results also include operation, stage, completed_pages, pages_started, total_pages, report_id, share_url, error_code, and error_message; some values can be null. poll_after_seconds is null after the job ends. Only completed proves success; failed ends tracking with an error. Do not call an editing tool: none is exposed by this connector.
Invalid parameters return a tool error with error_code: "INVALID_ARGUMENT" and message. Correct the parameters before retrying. After a creation timeout, use the known job ID if one was returned; if no ID was received, explain that submission is uncertain and ask before creating another job.
Analysis and Outline
- Determine the audience, business question, time range, metrics, grouping, and intended decision from the user's goal. Ask when an essential metric definition is missing; make explicit assumptions for other details when supported by the files. If the user requests analysis only, deliver the analysis without calling the report creation tool.
- Read user-uploaded files through the current client. Check field meanings, record grain, time ranges, units, missing values, and duplicates. Use available computation tools for aggregation, comparisons, trends, and relevant group analysis. Verify the baseline, denominator, and sample scope for year-over-year or period-over-period calculations. Search the web only when external context is needed, and record sources and dates. Explain data limitations rather than inventing values or causes.
- Build a narrative from question and definitions to key findings, evidence and possible causes, and recommendations. Include verified metrics, units, time ranges, and aggregated chart data in
outline; do not upload raw detail files. Put sources, definitions, and uncertainty on the relevant outline pages. No separateevidencefield is needed. - Before creating a report, write the complete outline according to references/outline-format.md and check its format, numbers, and charts. The report name is extracted automatically from the outline's
# Main title. Briefly explain the analysis approach and planned report if useful. When the user has already requested report creation, do not add a separate outline approval step.
Creation and Tracking
- Use the workspace selected on the OAuth consent page for the current connection. Tool calls do not require
workspace_id. If the connection is unauthorized, ask the user to connect AlgForce in the client and select a workspace. Switching workspaces requires authorization again. Do not ask users to send tokens or workspace IDs in the conversation. - Call
create_reportwith the completeoutlineand, when needed,locale(default:zh-CN). Each call submits a new job; do not automatically retry creation. Save the returnedjob_idand immediately show the returnedreport_urlas a "View report" link. If a callable built-in browser tool is available, open this URL before the firstget_reportcall and save the tab identifier; do not wait until completion to open it. If no such tool exists or opening fails, explain this and continue tracking the job. AlgForce automatically creates a public read-only share when generation completes; users do not need to share manually in the frontend. The preview's Edit button separately verifies the signed-in account and editing permissions. - Query status with
get_report({"job_id":"..."}). Within the client's available execution time, poll serially using the returnedpoll_after_seconds, or approximately 15 seconds if absent. Do not query the same job concurrently. Report actual progress usingstage,completed_pages,pages_started, andtotal_pages; do not invent percentages. After everyget_reportresult, update the user-visible progress and refresh the same built-in browser tab, keeping the returned preview link in the update. If the client cannot keep waiting, give the user thejob_idand preview link. The page updates its own progress; resume by querying the existing job next time rather than creating the same report again. - Check
statusandreport_urlafter eachget_reportresult. Whenstatusiscompleted, stop polling immediately, present the link using the rules below. Do not continue saying that report generation is pending. Whenstatusisfailed, explainerror_codeanderror_message; submit a new job only if regeneration is needed after the cause has been addressed. Status queries do not modify the job.
Presenting Reports in the Client
- Show the report entry point in a user-visible reply in WorkBuddy or another client. Do not leave the link only in tool results, internal reasoning, or JSON.
- Apply the same presentation rules at creation, during generation, and after completion. Consistently display the returned
report_urlas a "View report" link. Do not replace the original preview entry point withshare_url, generated HTML, or a local file after completion. - After creation, discover and use the built-in browser or web-preview tools actually available in the current client to open the returned
report_urlin the results area. Save the tab or page identifier after the first successful open. Refresh or update that same page after everyget_reportresult, including completion. Do not repeatedly create tabs or substitute system-browser commands. - Open and refresh internally only when the client provides the required tools. Follow their actual schemas; do not invent tool names or private URL schemes. If no callable built-in browser tool exists or execution fails, explain this and retain a clickable link. WorkBuddy users can right-click the link and choose the option to open it internally, or set Settings > General > Link opening behavior to always use the built-in browser. These settings determine where clicked links open; they do not let MCP automatically open tabs.
- The page automatically updates generated report content every 5 seconds, independently of Agent polling. It shows a waiting message before the first page is generated. Do not describe a running report as completed.
- Prefer
report_url, which includes the editing entry point.share_urlis the underlying read-only/share/iframe/<share_id>?b=reportshare address; provide it separately only when the user requests sharing or embedding. Use the exact returned URL without inserting spaces or rewriting it. - When
get_reportreturns a nonempty HTTP/HTTPSreport_url, use the original returned URL in a Markdown link. At completion, reply with the equivalent of "Report generated: [View report](actual report_url)" in the user's language. If the report title is known, it may be used as the link label.actual report_urlis an explanatory placeholder and must be replaced with the real returned URL. - If the backend returns a valid
report_urlduring generation, include "[View report](actual report_url)" in progress updates and state that generation is still in progress. Claim completion only whenstatusiscompleted; the existence of a link does not prove completion. - If
report_urlis empty, show only actual progress. Do not construct a link fromjob_id,report_id, or a domain. If the job has completed without a link, explain that the report is complete but the service did not return an opening link, retain the job ID for investigation, and stop waiting for generation. - Claim that the report has opened inside the client only after actually calling the built-in browser tool and confirming success. If no call was made or it failed, provide the clickable entry point and explain that the user needs to open it; do not claim automatic display.
Editing Through the Frontend
MCP does not provide a report editing tool. If the user requests changes to an existing report, provide its returned report_url and direct them to the preview's Edit button. The frontend verifies the signed-in account and editing permissions before opening the editor. Do not invent an editing tool or silently create a replacement report. Create a new report only when the user requests a separate report.
Error Recovery
NOT_FOUND: distinguishjob_idfromreport_id, then check the current user's access and workspace permissions.- Authorization failure: guide the user to reconnect AlgForce in the current client. Do not request or display tokens.
- Job failure or timeout: query the existing
job_idfirst to confirm its final status. Submit a new creation job only after failure is confirmed and its cause has been addressed.
Read the complete outline reference
AlgForce Report Outline Format
Use this reference to prepare create_report.outline. It is based on the project's report Skill outline format and Default layout specifications. It defines page syntax and available layouts, rather than prescribing a fixed number or sequence of analysis pages. Choose pages according to the report goal, audience, and verified data.
Document and Page Syntax
Start the outline with a # main title, followed by a nonempty > subtitle and a <!-- meta ... --> block. Start each page with a ## heading and separate pages with ---. Set meta.pages to the actual number of ## page headings. Do not add page numbers to page titles.
# Report title
> Scope, subject, or central topic
<!-- meta
goal: Goal of this report
skill: Report type
style: default
lang: business
pages: Actual page count
audience: Intended audience
date_range: Actual start and end dates
generated: Generation date
-->
---
## Page title
`layout: English layout name from the table below`
`layout_intent: Reason for selecting this layout`
`layout_slots: Slot names defined for this layout`
- [slot: A slot name declared above] Component title [chart: line]
| Actual time field | Actual metric field |
|---|---|
| Actual period | Actual value and unit |
- [hint: Annotation supported by the actual data]
This example illustrates syntax, not a complete report template. Replace all explanatory text with actual content before submission; do not leave placeholders. Write page-level layout, layout_intent, and layout_slots using the single-line backtick format above. Each main content bullet's [slot: ...] must appear in layout_slots. Match the number of bullets to the selected layout. Layouts without main content slots must not include content bullets. For [text] slots, provide final copy; for [smart_layout], provide structured content; for [chart: ...], provide verified data that can be plotted.
Include a data overview, data definitions, analysis, and a closing decision. Use "Data overview" on page 1 to present the core findings and "Data definitions" on page 2 to explain sources, scope, definitions, and trustworthiness. Use the final page to consolidate findings and actions. Determine the number, sequence, titles, and layouts of intermediate analysis pages from the analysis itself. Prefer conclusion-based titles for analysis pages.
Layout Selection
Write the layout name in layout:. One bullet represents one main content slot, not an additional chart. Use meaningful slot names such as main-chart, left-chart, right-chart, spec-body, and takeaways; avoid generic names such as slot1.
| Layout | Appropriate content and structure | Main content slots |
|---|---|---|
KPI Ledger | Core metric overview with verified KPIs and three lower-section conclusions: evidence, attribution, and recommendation. Each KPI includes its name, current value, and description. | 1 |
Specification Sheet | Sources, dates, metric definitions, units, and limitations. Use a two-column specification table with at most 5 body rows; put additional details in footnotes. | 1 |
Single-Chart Insight | One main chart supporting one conclusion, with three lines for evidence, attribution, and recommendation. Use chart. | 1 |
Dual-Chart Comparison | Two complementary charts on the same topic, with two lines for evidence and risk. Place one chart on each side. | 2 |
Dual-Track Comparison | A/B or before-and-after comparison using matching dimensions and definitions. Mirror the factual panels, each with a main metric and brief supporting facts. | 2 |
Closing Statement | Final-page findings and priority actions in two columns, with 2-3 items each and no more than 3. Number findings 01-03 and actions P1-P3; include a "Goal:" line at the bottom. | 1 |
Horizontal Timeline | A linear process with 4-7 steps. Use one timeline component; each node includes its number, key value or status, and stage name. | 1 |
Feedback Loop | A closed cycle with 3-5 steps. Do not use it for a linear process. | 1 |
Three Forces Cards | Three comparable drivers or growth opportunities, each with a short title and one explanatory sentence. | 3 |
Three-Column Argument | A progressive argument across three columns, each supported by facts or data. Use chart. | 3 |
Four-Column Features | Four equally weighted features or actions with matching structure. | 4 |
Six-Cell Definition | Six equally weighted definitions, snapshots, or metrics, each with a short title and description. | 6 |
Micro-Card Briefing | Six short observations or tips in a 3-by-2 grid. Each item includes a brief conclusion and footnote. | 6 |
Matrix Overview | An overview of 8-12 comparable items, with a total or overall assessment below. | 8-12 |
System Architecture | A strictly nested three-layer Core / Middle / Outer architecture. Do not use it for an ordinary list. | 1 |
Image Hero | One real image used as evidence, with an explanation or supporting KPI. Do not use it without an actual image. | 1 |
Minimal Statement | A single central claim or section opening. Do not use it for data charts. | 0 |
Dot-Matrix Statement | A qualitative statement or section transition with brief anchor text. Do not use it for data charts. | 0 |
Statement Banner | An intermediate claim with supporting explanation. Do not use it as a substitute for the final decision page. | 0-1 |
For analysis pages with verified quantitative data, consider Single-Chart Insight or Dual-Chart Comparison first. Choose another layout when the content does not fit. Content in multiple slots should complement rather than repeat the same data. Use chart for chart-based layouts and prefer smart_layout for processes, matrices, and comparisons. Do not invent metrics, images, or items to fill a layout.
Charts and Values
Supported chart types are line, bar, column, grouped_bar, stacked_bar, grouped_column, stacked_column, pie, donut, combo, scatter, and bubble. Immediately follow each [chart: ...] bullet with a Markdown table whose headers use actual business field names. Ordinary charts use a dimension and metric; grouped charts add a series field; combo uses separate columns for the bar and line metrics; scatter charts use X/Y; bubble charts add size. Table-based smart_layout content also requires column headers. Preserve units, dates, currencies, and percentage definitions in the data rows. Include only aggregated plotting data, not raw detail records.
After a chart's data rows, include a meaningful [hint: ...] to annotate a target line, average, unusual period, or important series or category. Do not add hints to smart_layout. Do not present unverified causes as facts. Explain missing data and conflicting definitions on the definitions page or the relevant analysis page. Before submission, verify that page counts, slot counts, chart fields, values, and conclusions are consistent.
Frequently asked questions
Can I use this without persistent Skill installation?
If the client supports MCP but cannot install a Skill, ask the Agent to read the complete English guide here or /mcp.md and follow it in the current conversation. This does not persistently install a Skill; a new conversation may need to read it again. MCP connection and authorization are still required.
Can my Agent install and connect automatically?
This depends on the client’s file installation, MCP configuration, and browser authorization capabilities. Reading a guide does not install a Skill. First connection still requires you to sign in and select a workspace.
Do I upload Excel or CSV files to MCP?
Your Agent reads files, analyzes data, and verifies calculations. It sends aggregated chart data and findings in outline. MCP accepts the outline; it does not expose a file-upload tool.
Where can I view and edit reports?
Creation returns a preview link that updates during generation. The Edit button opens the website editor after sign-in and permission checks. MCP itself has no editing tool.
Are preview links public?
Yes. Preview and completed share links are public and read-only: anyone with the link can view them. Confirm that the report content is suitable for sharing before creation. Editing permissions are checked separately.
Which clients are supported?
WorkBuddy connection and report generation have been verified in our test environment. Other clients must support remote Streamable HTTP MCP and the required OAuth flow; compatibility should be tested after setup.
Does report generation cost anything?
Report creation is subject to the authorized workspace’s account limits and plan. See current pricing on the website. Installing the Skill does not provide unlimited report generation.
Which tasks and teams is this for?
For agencies, sales operations, and management teams with analyzable data and reporting needs. The Agent verifies inputs and conclusions before report creation; rendering does not replace data validation.
How does this differ from writing Markdown in an Agent?
Markdown can express a text analysis directly. This service renders an outline with verified data into a visual report, returns progress and a public preview, and offers a website editor for refinement. MCP has no file-upload, editing, or export tool.
Can MCP directly analyze Excel or CSV files?
MCP accepts outline, not raw files. The current Agent needs file-reading and analysis capabilities to calculate metrics, validate definitions, and place the required aggregates into the outline.