<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Hi Tim, all, <div><br></div><div><p style="margin: 0px 0px 18px; font-style: normal; font-variant-caps: normal; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-kerning: none; background-color: rgba(255, 255, 255, 0);">During the summer 2025 I set up a public MCP server (implementing the Streamable http transport) to expose a SLAP2 data access service in a way that LLM could extract and manipulate data. </span></p>
<p style="margin: 0px 0px 18px; font-style: normal; font-variant-caps: normal; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-kerning: none; background-color: rgba(255, 255, 255, 0);">It worked just fine, but was not usable: the result from the MCP response directly goes in the context window. Even flagship models have a context of 1Mb and any “real” query produced so many data that the context was immediately saturated. </span></p>
<p style="margin: 0px 0px 18px; font-style: normal; font-variant-caps: normal; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-kerning: none; background-color: rgba(255, 255, 255, 0);">We adopted then the “skill” approach (this is what you describe as the markdown giving instructions to the LLM). Check the skill folder of <a href="https://github.com/VAMDC/pyVAMDC">https://github.com/VAMDC/pyVAMDC</a> to see what we made. This approach works perfectly, and we are very happy with this, but it requires a sandbox so that the LLM can run system command and download files to parse. This is the case for Claude, ChatGPT and we also achieved this locally using open-wighted models + OpenWebUI with the OpenTerminal extension.</span></p>
<p style="margin: 0px 0px 18px; font-style: normal; font-variant-caps: normal; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-kerning: none; background-color: rgba(255, 255, 255, 0);">The very true force of LLM is that they can adapt even if the vocabulary of each data provider is slightly different. They can cope with the differences and align the sense - they do not need necessarily a fixed vocabulary. But this can help. </span></p>
<p style="margin: 0px 0px 18px; font-style: normal; font-variant-caps: normal; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-kerning: none; background-color: rgba(255, 255, 255, 0);">I recently participated in writing a recommendation from the Research Data Alliance where we tried to define some “standard” for agentic tool for research - maybe this could be useful for the IVOA community too : <a href="https://www.rd-alliance.org/groups/data-director-agentic-ai-blueprint/outputs/data-director-agentic-ai-tool-blueprint/">https://www.rd-alliance.org/groups/data-director-agentic-ai-blueprint/outputs/data-director-agentic-ai-tool-blueprint/</a></span></p>
<p style="margin: 0px 0px 18px; font-style: normal; font-variant-caps: normal; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-kerning: none; background-color: rgba(255, 255, 255, 0);">All the best, </span></p>
<p style="margin: 0px 0px 18px; font-style: normal; font-variant-caps: normal; font-width: normal; line-height: normal; font-size-adjust: none; font-kerning: auto; font-variant-alternates: normal; font-variant-ligatures: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-feature-settings: normal; font-optical-sizing: auto; font-variation-settings: normal;"><span style="font-kerning: none; background-color: rgba(255, 255, 255, 0);">Carlo.</span></p><div><span style="font-kerning: none"><br></span></div><div><br><blockquote type="cite"><div>On 27 Jul 2026, at 17:09, Tim Jenness via interop <interop@ivoa.net> wrote:</div><br class="Apple-interchange-newline"><div><div><div dir="ltr">At the recent SPIE meeting in Copenhagen, Ashley Barnes from ESO gave a talk on their experiments with teaching an LLM to query their data archive. They looked at making a dedicated agent taught explicitly but this cost them real money, and they looked at writing markdown instructions that the LLM could read to learn about the specifics of the archive center. This led me to ponder whether we should be talking about some kind of standardized MCP server interface (<font color="#419cff"><span style="-webkit-text-fill-color: rgb(65, 156, 255) !important;"><a href="https://modelcontextprotocol.io/docs/getting-started/intro">https://modelcontextprotocol.io/docs/getting-started/intro</a></span></font>) that an LLM could query to work things out about the archive.<div><br></div><div dir="ltr">This seems to be the way that many services are heading (my photos application has an MCP server to let an LLM look for photos efficiently). On the one hand we have all these open protocols so that in theory an LLM can work it all out and form the right query for a TAP server by querying registry and looking at TAP_SCHEMA, and that should work. MCP <i>might</i> be able to let an agent do the same thing but using fewer tokens, even if the end point is the agent sending off a TAP query.</div><div dir="ltr"><br></div><div dir="ltr">Is anyone else thinking about this? Can someone from ESO ask Ashley to join IVOA Slack to discuss this?</div><div dir="ltr"><br></div><div dir="ltr">Each data center could put their own MCP server up with their own targeted API and that might be fine, but pooling our experience in terms of what helped and what made things worse would be really helpful and if we end up with an IVOA Note containing advice on natural language queries that would be great. If we ended up with a standardized vocabulary for MCP servers that might be even better.</div><div dir="ltr"><br></div><div dir="ltr">-- </div><div dir="ltr">Tim Jenness</div><div dir="ltr">Rubin Observatory</div></div></div>
</div></blockquote></div><br></div></body></html>