Great! Actually, we could do June 7th as well, Sat. Either day starts at 9:00 PST and goes to 10:30 PST. We’d love to see the whole process and your thinking. People would like to learn what they need and how to do it themselves. The stages is yours. Which day can we put you down for?
I can’t do Sat June 7th. I can do Sat Jun 14 I am on central time so 11 AM central/9 AM Pacific on Sunday Jun 15, correct? Do I need a special link to present/share my screen?
Great. Let’s go with this then, Sunday June 15 (we don’t have a meeting on 14th), thanks.
Thank you @acbmd for this great share.
Got it up and running – after hours of debugging.
The MCP Server tinderbox_mcp_server.py
needed tweeking, though, in line 168
@server.list_tools()
async def handle_list_tools():
"""Return list of available tools"""
print("handle_list_tools called", file=sys.stderr)
return TOOLS_LIST # Return just the list, not wrapped in dict
which had to be replaced – according to Claude – with
@server.list_tools()
async def handle_list_tools():
"""Return list of available tools"""
print("handle_list_tools called", file=sys.stderr)
from mcp.types import Tool
# Convert dict tools to Tool objects
tools = []
for tool_dict in TOOLS_LIST:
tool = Tool(
name=tool_dict["name"],
description=tool_dict["description"],
inputSchema=tool_dict["inputSchema"]
)
tools.append(tool)
return tools
Working fine …
The AppleScript was not working when it came to linking one note to another …
So with Claude’s assistence the entire create_link
function had to be changed like so:
async def create_link(from_note: str, to_note: str,
link_type: Optional[str] = None,
document: Optional[str] = None) -> List[Dict[str, Any]]:
"""Create a link between notes"""
try:
doc_specifier = f'document "{document}"' if document else 'front document'
# Clean note paths - remove leading slash if present
to_note_clean = to_note.lstrip('/')
script = f'''
tell application "Tinderbox 10"
tell {doc_specifier}
set sourceNote to note "{from_note}"
evaluate sourceNote with "linkTo(/{to_note_clean})"
end tell
end tell
'''
result = TinderboxHelper.run_applescript(script)
return [{"type": "text", "text": "Link created successfully"}]
except Exception as e:
return [{"type": "text", "text": f"Error: {str(e)}"}]
That did the trick. Maybe helpful to others.
Any idea @acbmd?
Cheers,
andreas
I’ve not been able to further improve my initial version of the server due to other work, so it’s great to see that another one popped up.
I just want to quickly mention two things that might be interesting to some:
- In the meet-up that I participated in the main concern was the complexity of installing these servers. Anthropic has since introduced a way to simplify this by bundling the whole server into one package that can be installed with one click: Claude Desktop Extensions: One-click MCP server installation for Claude Desktop \ Anthropic
- Anthropic has also since released remote MCP, which is technically for web services, but has an interesting implication for Tinderbox: If you leave a Mac running as a server, you can use this as a way to interact with Tinderbox from mobile, by letting Claude on a phone or iPad access Tinderbox on that Mac.
At present, Tinderbox installs its MCP service for Claude when you enable MCP in Document Settings. So it’s even easier than the desktop extensions!
I do like the remote idea.
in TBX Version 10.2.0?
No, as explained in the meet-up today, the implementation is in beta only at present. Those who are members of the Backstage should use build 723 (or later) and the beta must be placed only in the /Applications folder (this might mean renaming the public release app to avoid name collisions).
At present, using the initial AI implementation needs:
- a Backstage-only beta build.
- the app in a particular location (
/Applications
). - the AI used is Anthropic only (for now), accessed via the Claude Desktop app.
- the AI engine used is online, so not suitable for private/sensitive work. The aim is to get the basics working before digging into the complexities of public/private use
- use may require pay-for tier of AI use—currently it appears to work with the Claude free tier (despite saying MCP use needs the pay-for ‘pro’ tier. Obviously, heavy/complex use may burn through free/paid tokens more quickly—but that holds for direct use of the given AI).
- The process works with one TBX document only (at a time). Again this is not necessarily a constraint long-term, but part of learning the practical implications of AI MCP work.
- The TBX(s) used in this fashion needs additional content in
/Hints
(as inserted by the Tinderbox app).
Be aware the AI and the MCP underpinnings themselves are under active development so nothing is simple or well-documented at this point.
Eastgate noted today they hope to have version of this for the whole Tinderbox community. It will be ready when it is ready, so everyone please avoid making “Is it ready yet?” posts. When ready, it will be announced.
Iv’e corrected my lat above, but for those who’ve already read the note, beta build b723 or later should be used (for those with backstage access).
I’ve been playing with Claude Desktop (free version, on Mac) and Tinderbox for a couple of days. Every so often Claude reaches the free limit and I have to wait for half a day or so, but that’s fine (keeps me from obsessing too much!).
It’s been quite useful so far, helping me improve a fairly simple Commonplace/bibliographic setup. I’m using Tinderbox Version 11.0.1 (b737).
The main problem is keeping the connection between Claude Desktop and Tinderbox active. I had it working great in one chat, which was getting kind of long, so I started a new one. But then I coudn’t get it to connect again.
I realize that this is all very experimental, and I’m not a programmer. Even many Tinderbox features are beyond me. But I’m happy with my little commonplace file, and so far Claude seems to be fairly good at integrating with it; for example, automatically filling in limited bibliographic info from the web, adding tags automatically, and suggesting other improvements to my workflow.
Yes, I know I can use Zotero to get all kinds of biblio info – more than I need, I’m not an academic – but using Claude is a whole lot easier. Basically I want to be able to add a new book’s author and title, drop it into my Commonplace category, and have Claude fill in the rest of the fields that I care about, including automatic tags.
I’ve also asked it about doing some fancier stuff in terms of creating “writer” notes with links to relevant books by and about each author, as well as my own notes about that writer, but that seems to have sent me down a rabbit hole, and now I can’t connect any more. And I’m thinking that one of my existing agents, which simply gathers all books by a given author, is just fine, and my attempt to do something fancier with links (which I’ve experimented with separately from Claude) isn’t worth it.
Do you have any advice on how to keep the connection alive between chats? Perhaps I should just wait a while until you’re further along with the integration?
I tried Claude Projects for a few months, so am pretty familiar with its potential and its limitations. (FWIW, I also use Gemini regularly, and ChatGPT turns out to be fairly useful for Irish language study – when it’s not making stuff up.) I can imagine other uses for a Claude/Tinderbox integration that might be interesting, beyond my current commmonplace file, but will definitely wait for more stability before trying anything fancier.
Perhaps the main attraction is using Claude as a sort of active helper/guide, so I can quickly try things out in Tinderbox, and learn how to use it better, without having to spend a lot of time fiddling around.