Woodentable

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