{ "@context":[ "https://www.w3.org/ns/activitystreams", {"Hashtag":"as:Hashtag"} ], "published":"2025-08-19T17:48:33.855Z", "attributedTo":"https://epiktistes.com/actors/toddsundsted", "replies":"https://epiktistes.com/objects/7ibHKQoU5O8/replies", "to":["https://www.w3.org/ns/activitystreams#Public"], "cc":["https://epiktistes.com/actors/toddsundsted/followers"], "name":"Release v3.0.0 of Ktistec", "content":"
I've been running v3.0.0 of Ktistec in production for the last few weeks, and it seems stable and I’m using it every day, so it’s time to release it!
This release adds:
Model Context Protocol (MCP) is a simple, general API that exposes Ktistec ActivityPub collections (timeline, notifications, likes, announces, etc.) to MCP clients. To be fully transparent about what this means, MCP clients are shells for Large Language Models (LLMs).
When building this, I focused on a few use cases that are important to me: content summarization, content prioritization (or filtering) based on my interests or the content's structure (well-constructed arguments vs. low-signal opinions) or its tone, especially when it comes to shared posts. Ktistec is a single user ActivityPub server and Epiktistes (my instance) gets a lot of traffic. I want to build the “algorithms” that surface the content I want to see.
Of note, there’s currently no support for content generation.
While I work on this, I’m not abandoning the 2.x line. I’ll continue to add compatible features and fix bugs as long as I'm able. I realize the use of LLMs, and MCP by extension, and therefore the 3.x branch, is controversial—I don’t intend to push v3 on anyone.
If you're still with me, Ktistec now exposes:
ktistec://actors/{id*}
)ktistec://objects/{id*}
)ktistec://users/{id}
)ktistec://information
)count_collection_since(name, since)
paginate_collection(name, page, size)
read_resources(uris)
whats_new
Supported collections include:
hashtag#<name>
(e.g., \"hashtag#technology\")mention@<name>
(e.g., \"mention@euripides\")There is more detail in the README.
TL;DR Add a remote MCP connector in your MCP client of choice: supply the URL of your instance including the /mcp path (e.g. \"https://epiktistes.com/mcp\").
#ktistec #fediverse #activitypub #crystallang #mcp #llm
I've been running v3.0.0 of Ktistec in production for the last few weeks, and it seems stable and I’m using it every day, so it’s time to release it!
This release adds:
Model Context Protocol (MCP) is a simple, general API that exposes Ktistec ActivityPub collections (timeline, notifications, likes, announces, etc.) to MCP clients. To be fully transparent about what this means, MCP clients are shells for Large Language Models (LLMs).
When building this, I focused on a few use cases that are important to me: content summarization, content prioritization (or filtering) based on my interests or the content's structure (well-constructed arguments vs. low-signal opinions) or its tone, especially when it comes to shared posts. Ktistec is a single user ActivityPub server and Epiktistes (my instance) gets a lot of traffic. I want to build the “algorithms” that surface the content I want to see.
Of note, there’s currently no support for content generation.
While I work on this, I’m not abandoning the 2.x line. I’ll continue to add compatible features and fix bugs as long as I'm able. I realize the use of LLMs, and MCP by extension, and therefore the 3.x branch, is controversial—I don’t intend to push v3 on anyone.
If you're still with me, Ktistec now exposes:
ktistec://actors/{id*}
)ktistec://objects/{id*}
)ktistec://users/{id}
)ktistec://information
)count_collection_since(name, since)
paginate_collection(name, page, size)
read_resources(uris)
whats_new
Supported collections include:
hashtag#<name>
(e.g., \"hashtag#technology\")mention@<name>
(e.g., \"mention@euripides\")There is more detail in the README.
TL;DR Add a remote MCP connector in your MCP client of choice: supply the URL of your instance including the /mcp path (e.g. \"https://epiktistes.com/mcp\").