Use this when an AnythingLLM agent needs spreadsheet-shaped business logic, but the formula state should live behind explicit WorkPaper tools instead of Excel UI automation, browser grid clicks, or stale XLSX cached values.
AnythingLLM loads MCP servers from plugins/anythingllm_mcp_servers.json in the
AnythingLLM storage directory. Its MCP integration exposes tools to agents; it
does not expose MCP Resources, Prompts, or Sampling.
Official AnythingLLM references:
Use this when you only need to prove that AnythingLLM can discover and call the Bilig WorkPaper tools.
Edit plugins/anythingllm_mcp_servers.json:
{
"mcpServers": {
"bilig-workpaper": {
"type": "streamable",
"url": "https://bilig.proompteng.ai/mcp"
}
}
}
Then open Agent Skills and refresh MCP servers, or invoke the agent so AnythingLLM starts the configured server. The hosted endpoint is stateless and request-local. It proves tool discovery and formula readback, but it does not persist a private project file.
Use this in AnythingLLM Desktop when the WorkPaper JSON file should live on the host machine and survive across turns.
{
"mcpServers": {
"bilig-workpaper-local": {
"command": "npx",
"args": [
"-y",
"--package",
"@bilig/workpaper@latest",
"bilig-workpaper-mcp",
"--workpaper",
"./pricing.workpaper.json",
"--init-demo-workpaper",
"--writable"
]
}
}
}
--init-demo-workpaper creates the demo file only when it is missing.
--writable persists tool writes back to the same WorkPaper JSON file.
AnythingLLM Desktop runs MCP commands on the host machine. Make sure npx works
from a normal terminal before refreshing Agent Skills.
Use this when AnythingLLM runs in Docker and the WorkPaper file should persist
inside AnythingLLM storage. AnythingLLM documents that Docker MCP servers can
use paths under /app/server/storage/..., which map back to the host
STORAGE_LOCATION.
{
"mcpServers": {
"bilig-workpaper-docker": {
"command": "npx",
"args": [
"-y",
"--package",
"@bilig/workpaper@latest",
"bilig-workpaper-mcp",
"--workpaper",
"/app/server/storage/workpapers/pricing.workpaper.json",
"--init-demo-workpaper",
"--writable"
]
}
}
}
Create the workpapers directory under the same host STORAGE_LOCATION that
AnythingLLM mounts for /app/server/storage.
If startup cost matters, keep the MCP server enabled but opt out of automatic startup until the agent needs workbook tools:
{
"mcpServers": {
"bilig-workpaper-docker": {
"command": "npx",
"args": [
"-y",
"--package",
"@bilig/workpaper@latest",
"bilig-workpaper-mcp",
"--workpaper",
"/app/server/storage/workpapers/pricing.workpaper.json",
"--init-demo-workpaper",
"--writable"
],
"anythingllm": {
"autoStart": false
}
}
}
}
After refreshing Agent Skills, ask in an agent-enabled thread:
@agent Use the Bilig WorkPaper MCP tools. List the tools, read the sample sheets,
set Inputs!B3 to 0.4, read Summary!B3, export the WorkPaper document, and return
editedCell, before, after, afterRestore, persistedDocumentBytes, verified, and
limitations.
The Bilig server exposes these tools:
list_sheetsread_rangeread_cellset_cell_contentsget_cell_display_valueexport_workpaper_documentvalidate_formulaBefore wiring it into AnythingLLM, you can prove the same local MCP contract from a terminal:
npx -y --package @bilig/workpaper@latest bilig-mcp-challenge --json
Expected proof fields include:
{
"transport": "stdio-json-rpc",
"editedCell": "Inputs!B3",
"dependentCell": "Summary!B3",
"before": 60000,
"after": 96000,
"afterRestart": 96000,
"verified": true
}
verified should only be true after the dependent formula output is read back
and the persisted document can be restored.
/app/server/storage/... when the file must persist through the mounted
storage directory.