<!DOCTYPE html><html><head><title></title></head><body><div>On a related note, some of us will informally be chatting about AI. <a href="https://luma.com/dphtpj7m">https://luma.com/dphtpj7m</a></div><div><br></div><div>Anyone is welcome to join. No expertise required. </div><div><br></div><div>On Thu, Mar 26, 2026, at 3:40 PM, Marc Perry wrote:</div><blockquote type="cite" id="qt" style=""><div dir="ltr"><div class="qt-gmail_default" style="font-family:verdana, sans-serif;font-size:large;"><br></div><div><br></div><div class="qt-gmail_quote qt-gmail_quote_container"><div dir="ltr" class="qt-gmail_attr"><div>---------- Forwarded message ---------</div><div>From: <b class="qt-gmail_sendername" dir="auto">Marc Perry</b> <span dir="auto"><<a href="mailto:marcperryster@gmail.com">marcperryster@gmail.com</a>></span></div><div>Date: Thu, Mar 26, 2026 at 3:26 PM</div><div>Subject: Re: [tpm] Meeting tonight?</div><div>To: James E Keenan <<a href="mailto:jkeenan@pobox.com">jkeenan@pobox.com</a>></div></div><div><br></div><div><br></div><div dir="ltr"><div style="font-family:verdana, sans-serif;font-size:large;"><a href="https://luma.com/bdom1gut?tk=gG6BLS" target="_blank">https://luma.com/bdom1gut?tk=gG6BLS</a> </div><div style="font-family:verdana, sans-serif;font-size:large;"><br></div><div style="font-family:verdana, sans-serif;font-size:large;"><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">Topic:<span> </span></span></span></span><span><a href="http://toronto.pm/" rel="noopener noreferrer" style="color:rgb(18, 100, 163);text-decoration-line:none;" target="_blank">Toronto.pm</a></span><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;"><span> </span>- Lembark talk</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;"> Time: Mar 26, 2026 07:00 PM Eastern Time (US and Canada)</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;"> </span></span></span><span><a href="https://us02web.zoom.us/j/83060065332?pwd=5caWQ49cB9yr4VCRseNWNEoVFmHCoo.1" rel="noopener noreferrer" style="color:rgb(18, 100, 163);text-decoration-line:none;" target="_blank">https://us02web.zoom.us/j/83060065332?pwd=5caWQ49cB9yr4VCRseNWNEoVFmHCoo.1</a></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;"> Meeting ID: 830 6006 5332 Passcode: 670376</span></span></span></div></div><div style="font-family:verdana, sans-serif;font-size:large;"><br></div><div style="font-family:verdana, sans-serif;font-size:large;"><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">Designing Perly MCPs for Claude</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">The MCP standard allows defining actions for cases where the AI doesn’t already know how to glue</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">together shell commands or must make connections to specialized services like databases. From the AI</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">and user’s point of view this MCP is defined by its tool specification. This tells the AI when and how to</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">use the specific tools. Proper tool definition is critical to the proper selection and use of the tools.</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">As a trivial example we start with a time service based on enums to specify strftime formats for stan-</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">dard uses, descriptions to Claude on how to select and apply them. These could obviously be supplied</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">by the date(1) shell command, but the focus here is on making effective tool definitions and supporting</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">code and this is a suitably simple example. The next section describes approaches to configuring the</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">tool, showing basic descriptions and how to extend each of them for better accuracy in Claude’s calling</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">them. Following that will be examples of the data structures used by Claude to call the MCP and Perl</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">code for handling them effectively. The result is a small, efficient, lightweight module and executable</span></span></span></div><div><span style="color:rgb(0, 0, 0);"><span class="font" style="font-family:-webkit-standard;"><span class="size" style="font-size:medium;">for generic MCP handling. The final sections describe extending the MCP to handle arguments and</span></span></span></div></div></div><div><br></div><div class="qt-gmail_quote"><div dir="ltr" class="qt-gmail_attr"><br></div><blockquote class="qt-gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204, 204, 204);padding-left:1ex;"><br></blockquote></div></div></div><div>_______________________________________________</div><div>toronto-pm mailing list</div><div><a href="mailto:toronto-pm@pm.org">toronto-pm@pm.org</a></div><div><a href="https://mail.pm.org/mailman/listinfo/toronto-pm">https://mail.pm.org/mailman/listinfo/toronto-pm</a></div><div><br></div></blockquote><div><br></div></body></html>