logr
Query any public logr profile — timelines, events, full context — plus owner-authorized writes.
我该使用它吗
质量与安全性
发现(2)
- LOW在 get_profile 中
- LOW在 get_event 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"mcp": {
"url": "https://logr.it/mcp"
}
}
}远程端点
https://logr.it/mcpstreamable-http它能做什么
工具清单
工具(6)
🟢find_profiles(query, limit)
Search public logr profiles by name, handle, bio, or location. Returns handles to use with the other tools.
输入模式
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Name, handle, or free-text match"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"profiles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"username": {
"type": "string"
},
"name": {
"type": "string"
},
"bio": {
"type": "string"
},
"location": {
"type": "string"
},
"unverified": {
"type": "boolean"
},
"url": {
"type": "string"
}
},
"required": [
"username",
"name",
"bio",
"location",
"unverified",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"profiles"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_profile(username)
A profile's identity card: who they are, what they're doing now, socials, and timeline stats.
输入模式
{
"type": "object",
"properties": {
"username": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "The profile's @handle (its URL slug), e.g. \"koshik\""
}
},
"required": [
"username"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"username": {
"type": "string"
},
"name": {
"type": "string"
},
"bio": {
"type": "string"
},
"currently": {
"type": "string"
},
"location": {
"type": "string"
},
"about": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"avatarUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"socials": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"href": {
"type": "string"
}
},
"required": [
"label",
"href"
],
"additionalProperties": false
}
},
"unverified": {
"type": "boolean",
"description": "true when auto-generated and not claimed by its subject"
},
"disclosure": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"eventCount": {
"type": "number"
},
"years": {
"anyOf": [
{
"type": "object",
"properties": {
"first": {
"type": "number"
},
"last": {
"type": "number"
}
},
"required": [
"first",
"last"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"updatedAt": {
"type": "string"
},
"urls": {
"type": "object",
"properties": {
"profile": {
"type": "string"
},
"context": {
"type": "string"
}
},
"required": [
"profile",
"context"
],
"additionalProperties": false
}
},
"required": [
"username",
"name",
"bio",
"currently",
"location",
"about",
"avatarUrl",
"socials",
"unverified",
"disclosure",
"eventCount",
"years",
"updatedAt",
"urls"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_timeline(username, tag, year, featured, pinned, ...)
A profile's timeline events, newest first, optionally filtered by tag, year, featured, or pinned.
输入模式
{
"type": "object",
"properties": {
"username": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "The profile's @handle (its URL slug), e.g. \"koshik\""
},
"tag": {
"description": "Event tag: work | milestone | talk | side_quest | writing",
"type": "string"
},
"year": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"featured": {
"description": "Only events marked as highlights",
"type": "boolean"
},
"pinned": {
"description": "Only events the owner pinned",
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"username"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"username": {
"type": "string"
},
"total": {
"type": "number",
"description": "Matches before limit/offset"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"date": {
"type": "string",
"description": "ISO date (YYYY-MM-DD)"
},
"displayDate": {
"type": "string"
},
"year": {
"type": "number"
},
"title": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"featured": {
"type": "boolean"
},
"pinned": {
"type": "boolean"
},
"body": {
"type": "string"
},
"link": {
"anyOf": [
{
"type": "object",
"properties": {
"label": {
"type": "string"
},
"href": {
"type": "string"
}
},
"required": [
"label",
"href"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"sourceUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Citation URL for seeded events"
},
"mediaCount": {
"type": "number"
}
},
"required": [
"id",
"date",
"displayDate",
"year",
"title",
"tags",
"featured",
"pinned",
"body",
"link",
"sourceUrl",
"mediaCount"
],
"additionalProperties": false
}
}
},
"required": [
"username",
"total",
"events"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_event(username, id)
One timeline event in full, including its media (image/video/link URLs).
输入模式
{
"type": "object",
"properties": {
"username": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "The profile's @handle (its URL slug), e.g. \"koshik\""
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"required": [
"username",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"date": {
"type": "string",
"description": "ISO date (YYYY-MM-DD)"
},
"displayDate": {
"type": "string"
},
"year": {
"type": "number"
},
"title": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"featured": {
"type": "boolean"
},
"pinned": {
"type": "boolean"
},
"body": {
"type": "string"
},
"link": {
"anyOf": [
{
"type": "object",
"properties": {
"label": {
"type": "string"
},
"href": {
"type": "string"
}
},
"required": [
"label",
"href"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"sourceUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Citation URL for seeded events"
},
"mediaCount": {
"type": "number"
},
"media": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"url": {
"type": "string"
},
"poster": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"url",
"poster",
"provider",
"title"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"date",
"displayDate",
"year",
"title",
"tags",
"featured",
"pinned",
"body",
"link",
"sourceUrl",
"mediaCount",
"media"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_events(username, query, limit)
Keyword search over a profile's timeline (title, body, tags). All terms must match. Plain text matching — no semantic search.
输入模式
{
"type": "object",
"properties": {
"username": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "The profile's @handle (its URL slug), e.g. \"koshik\""
},
"query": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"username",
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"username": {
"type": "string"
},
"total": {
"type": "number"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"date": {
"type": "string",
"description": "ISO date (YYYY-MM-DD)"
},
"displayDate": {
"type": "string"
},
"year": {
"type": "number"
},
"title": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"featured": {
"type": "boolean"
},
"pinned": {
"type": "boolean"
},
"body": {
"type": "string"
},
"link": {
"anyOf": [
{
"type": "object",
"properties": {
"label": {
"type": "string"
},
"href": {
"type": "string"
}
},
"required": [
"label",
"href"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"sourceUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Citation URL for seeded events"
},
"mediaCount": {
"type": "number"
}
},
"required": [
"id",
"date",
"displayDate",
"year",
"title",
"tags",
"featured",
"pinned",
"body",
"link",
"sourceUrl",
"mediaCount"
],
"additionalProperties": false
}
}
},
"required": [
"username",
"total",
"events"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_context(username)
The complete Markdown context for a profile — identity, about, and full timeline with sources. Same content as the logr://profiles/{username} resource, for clients that prefer tools.
输入模式
{
"type": "object",
"properties": {
"username": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "The profile's @handle (its URL slug), e.g. \"koshik\""
}
},
"required": [
"username"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}推荐提示词
find_profilesfind_profilesget_profileget_profilefind_profilesget_profile社区
证据