Writing your own tools
A tool is a Tcl procedure with a short description above its body. Keep one in ~/.woodentable and every run offers it.
A tool
proc greet {who} {
# ---
# kind: tool
# description: Greet somebody by name
# params:
# who: {type: string, description: Whom to greet}
return "good day, $who"
}
Save it as ~/.woodentable/greet.tcl. Every .tcl file directly in ~/.woodentable is read when Woodentable starts. Try it at the console:
woodentable -eval 'puts [greet world]'
Your agent finds it in tools_list and calls it by name from its script. To give your agent your tools directly instead, serve with -expose mcp.
Let your agent write them
Start Woodentable with -dev and a folder it can write drafts to:
claude mcp add woodentable -- woodentable -dev -mount ~/wt-work=/work serve -name woodentable
-dev gives your agent the guides on writing tools, and one more tool, tool_reload. Describe what you need: your agent writes the tool into /work, loads it with tool_reload, and can call it from its next script. You're asked before each reload.
cp ~/wt-work/tools/greet.tcl ~/.woodentable/
Go deeper with the built-in guides:
woodentable help mcp-tools
woodentable help usage