MCP server inside Ekos
Thomas Nemer
thomas.nemer at fortytwo.fr
Thu Jun 4 21:22:48 BST 2026
Hello there,
I fixed a few bugs in several tools, and ended up connecting claude to
the mcp server with simulator devices, and recording a short video where
the llm runs a demo procedure covering some tools, and a few free
prompts. I put it here <https://vimeo.com/1198527232>. We can see there
are still bugs to be handled but also that it globally works. If the
feature looks interesting, I think the proper way to integrate it would
be to split it in several parts. First the mcp server itself : ekos
settings, transport layer, empty tool registry (or maybe with 1 tool) ->
roughly 800 lines. And then single tools, or small groups of tools (e.g.
slewing, tracking, focusing, capture, align, guiding, schedule...).
Best,
Thomas Nemer.
On 5/30/26 19:20, Thomas Nemer wrote:
>
> Hello Jasem,
>
> I read about Pavan's project a few weeks ago, this is very exciting,
> it will most probably improve guiding while an mcp server will only
> ever be a way to expose some internals in a structured way, I think
> these are complementary approaches.
>
> I first used the mcp server to setup my guiding correctly, but since
> then I extended it a lot and intend to keep going as it provides a UX
> I like. For instance, last night I ran kstars, connected to my rig
> with ekos, then started a claude in my terminal and asked it to init
> the session. This triggers a skill that checks the ekos status is ok
> and that the mount is parked, then it unparks the mount, captures an
> image, solves it, syncs the mount. if this is successful, it slews the
> mount on an axis a few degrees, captures another image, solves again,
> syncs again and does that a few times for both axis until the system
> properly knows where it is, finally it notifies me the session is
> ready. During that time I was looking for the night's target (I don't
> have a structured enough usage to leverage the scheduler), and once
> it's ok I tell claude to point to my target and describe the capture
> sequence I would like. All this use various mcp tools I've integrated.
>
> This is still a work in progress of course, and a lot is still
> missing, or in the making, or not tested yet : captured image data,
> focus results, polar align results, and more about features I can't
> test myself.
>
> For now it lives in a branch on my Github fork here
> <https://github.com/thomasnemer/kstars/tree/feature/mcp-server> but I
> would be happy to push it somewhere else, what's you preferred place
> for this?
>
> It would be a pain to review as a whole though (~ +6500 lines), a lot
> more manageable commit after commit
> <https://github.com/thomasnemer/kstars/compare/master...feature/mcp-server>.
>
> Best,
> Thomas
>
> On 5/30/26 17:13, Jasem Mutlaq wrote:
>> Hello Thomas,
>>
>> Thank you for your proposal. There is a whole project for this year
>> GSoC 2026 dedicated to AI-assisted guiding:
>> https://www.pavansg.me/blog/gsoc
>>
>> Nevertheless, the idea of MCP server integration is intriguing and we
>> can see if it benefits the overall ecosystem. Do you have the code
>> available somewhere so we can review it? Was this only used for
>> guiding or for other purposes?
>>
>> --
>> Best Regards,
>> Jasem Mutlaq
>>
>>
>>
>> On Sat, May 30, 2026 at 5:29 PM Thomas Nemer
>> <thomas.nemer at fortytwo.fr> wrote:
>>
>> Hello,
>>
>> I've been on this list quietly for several years but never posted
>> before.
>>
>> Quick intro: backyard astrophotographer in France. For a long
>> time I picked targets that worked with "polar align well and
>> track". Recently I tried guiding for the first time and hit a
>> tuning wall.
>>
>> The Cloudy Nights folks pointed me in the right direction, and
>> once I had the basics I wanted to keep tuning, but the loop of
>> reading logs, change a setting and try again was painful. I fired
>> up an AI agent on the log files and it helped, but reading
>> after-the-fact text still was a very long feedback loop.
>>
>> So I started building an MCP server inside Ekos, first exposing
>> the live state I needed for guiding diagnosis, then expanding as
>> it became useful, and even some more after only because some
>> tools looked like quick wins.
>>
>> How it is today:
>>
>> * ~40 tools across mount / capture / guide / focus / align /
>> scheduler / INDI, plus an SSE channel for typed events.
>> * Streamable-HTTP MCP transport on localhost, bearer-token
>> auth, rate limiting, optional read-only mode with a separate
>> read-only token.
>> * Per-tool 'readOnly' / 'destructive' / 'idempotent'
>> annotations so MCP clients can show users what they're
>> authorizing.
>> * Settings UI integrated into the existing Ekos options panel.
>> * 25 headless QTest cases, all green on Qt6.
>>
>> To be honest my C++ experience is very old, never with Qt, and
>> there are places I trusted the generative AI's proposed
>> implementations blindly. Also, my rig is very modest (EQ6 Pro +
>> 200/800 Newton + ASI 294MC Pro + ASI 120MM mini), so there are
>> some tools I just can't test end to end.
>>
>> Would that contribution be welcomed? I would be happy to share
>> any more details
>>
>>
>> Best regards,
>> Thomas Nemer
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kstars-devel/attachments/20260604/f52d42ff/attachment.htm>
More information about the Kstars-devel
mailing list