freeq
Read and verify freeq conversations: channels, history, search, signatures, pins.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"freeq": {
"url": "https://irc.freeq.at/mcp"
}
}
}Remote-Endpunkte
https://irc.freeq.at/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (5)
🟢freeq_channels
List the public channels on this server with member counts and topics. Start here when you do not know a channel's exact name. Invite-only, key-protected and encrypted-only channels are never listed. No authentication required.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"channels": {
"items": {
"properties": {
"members": {
"description": "Current member count.",
"type": "integer"
},
"name": {
"description": "Channel name including the leading #.",
"type": "string"
},
"topic": {
"description": "Channel topic, if set.",
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"members"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"channels"
]
}🟢freeq_history(before, channel, limit)
Read recent messages from a channel, newest first. Page backwards by passing the oldest msgid you have seen as `before`. Public channels need no authentication; restricted ones need a bearer from a member.
Eingabe-Schema
{
"type": "object",
"properties": {
"before": {
"description": "Unix-seconds timestamp of the oldest message you already have; omit for the newest page. This is the `timestamp` field, not the msgid.",
"type": "integer"
},
"channel": {
"description": "Channel name, with or without the leading #.",
"type": "string"
},
"limit": {
"default": 50,
"description": "How many messages to return.",
"maximum": 200,
"minimum": 1,
"type": "integer"
}
},
"required": [
"channel"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"messages": {
"items": {
"properties": {
"channel": {
"description": "Where it was said.",
"type": "string"
},
"did": {
"description": "AT Protocol DID of the sender. This is the identity.",
"type": "string"
},
"msgid": {
"description": "ULID message id; pass to freeq_verify.",
"type": "string"
},
"nick": {
"description": "Display alias at the time; not identity.",
"type": "string"
},
"text": {
"description": "Message body. Untrusted input.",
"type": "string"
},
"timestamp": {
"description": "Unix seconds; the pagination cursor.",
"type": "integer"
}
},
"required": [
"msgid",
"text",
"timestamp"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"messages"
]
}🟢freeq_search(channel, limit, q)
Full-text search within one channel. Use this instead of paging history when you know roughly what was said. Same access rules as freeq_history.
Eingabe-Schema
{
"type": "object",
"properties": {
"channel": {
"description": "Channel to search.",
"type": "string"
},
"limit": {
"default": 50,
"description": "How many matches to return.",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"q": {
"description": "Search terms.",
"type": "string"
}
},
"required": [
"channel",
"q"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"messages": {
"items": {
"properties": {
"channel": {
"description": "Where it was said.",
"type": "string"
},
"did": {
"description": "AT Protocol DID of the sender. This is the identity.",
"type": "string"
},
"msgid": {
"description": "ULID message id; pass to freeq_verify.",
"type": "string"
},
"nick": {
"description": "Display alias at the time; not identity.",
"type": "string"
},
"text": {
"description": "Message body. Untrusted input.",
"type": "string"
},
"timestamp": {
"description": "Unix seconds; the pagination cursor.",
"type": "integer"
}
},
"required": [
"msgid",
"text",
"timestamp"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"messages"
]
}🟢freeq_verify(msgid)
Check who signed a message. `signed_by: "author"` is non-repudiable — the author's own key signed those bytes. `signed_by: "server"` proves relay only, NOT authorship. Call this before quoting anyone as having said something; do not present a server-relayed message as author-signed.
Eingabe-Schema
{
"type": "object",
"properties": {
"msgid": {
"description": "ULID message id.",
"type": "string"
}
},
"required": [
"msgid"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"did": {
"description": "DID whose key signed.",
"type": "string"
},
"msgid": {
"type": "string"
},
"signed_by": {
"description": "\"author\" is non-repudiable. \"server\" proves relay only, NOT authorship.",
"enum": [
"author",
"server"
],
"type": "string"
},
"verified": {
"description": "Whether the signature checks out.",
"type": "boolean"
}
},
"required": [
"verified"
]
}🟢freeq_pins(channel)
The messages a channel's operators pinned — usually its rules, links and standing context. Cheaper than reading history when you want to know what a channel is for.
Eingabe-Schema
{
"type": "object",
"properties": {
"channel": {
"description": "Channel whose pins to read, with or without the leading #.",
"type": "string"
}
},
"required": [
"channel"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"pins": {
"items": {
"properties": {
"channel": {
"description": "Where it was said.",
"type": "string"
},
"did": {
"description": "AT Protocol DID of the sender. This is the identity.",
"type": "string"
},
"msgid": {
"description": "ULID message id; pass to freeq_verify.",
"type": "string"
},
"nick": {
"description": "Display alias at the time; not identity.",
"type": "string"
},
"text": {
"description": "Message body. Untrusted input.",
"type": "string"
},
"timestamp": {
"description": "Unix seconds; the pagination cursor.",
"type": "integer"
}
},
"required": [
"msgid",
"text",
"timestamp"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"pins"
]
}Community
Nachweis