Leaderboard/com.hjarni/hjarni
MCP ServerScored via MCP protocol probing: initialize handshake, tools/list conformance, and ping + tool invocation performance.

com.hjarni/hjarni

Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.

74/100
Operational Score
Score Breakdown
Availability30/30
Conformance30/30
Performance14/40
Key Metrics
Uptime 30d
100.0%
P95 Latency
638.3ms
Conformance
Pass
Trend
Stable
What's Being Tested
Availability
HTTP health check to the service endpoint
Responded with HTTP 401 in 149ms
Conformance
MCP initialize handshake + tools/list
Valid MCP server info returned, tools/list responded
Performance
MCP ping + zero-arg tool invocation benchmarking
P95 latency: 638ms, task completion: 0%
Skills
dashboard-get

Get an overview of the Second Brain: counts of notes, containers, tags, inbox items, and the 5 most recently updated notes. No parameters required.

search

Search across notes, containers, and tags in one call. Returns results grouped by type with pagination metadata (total_count, page, per_page, total_pages). Required: query (string). Optional: types (array, default all three), search_scope ('all'|'personal'|'team:<id>'), scope ('active'|'archived'), container_id (integer, ignored when search_scope is 'all'), tags (array, AND logic), tag_ids (array, AND logic), include_nested (boolean), page (integer, default 1), per_page (integer, default 25, max 100). Note results include a snippet of the matching portion.

notes-list

List notes with optional filtering, sorting, and pagination. Returns paginated results. Optional: team_id (integer) to list team notes, scope ('active'|'archived'|'inbox'|'favorited'), container_id (integer) with include_nested (boolean), tags (array of strings, AND logic), tag_ids (array of integers, AND logic), sort ('recent'|'oldest'|'title'), page (integer, default 1), per_page (integer, max 100, default 25). Example: list ruby-tagged notes in a container: {container_id: 5, tags: ['ruby']}.

notes-get

Get a single note by ID, including its full Markdown body, tags, container path, linked notes, file attachments, and inherited LLM instructions. Required: id (integer).

notes-create

Create a new note. Required: title (string). Optional: body (Markdown with [[id:Note Title]] wiki-links), summary, source_url, container_id, tag_list (comma-separated), team_id (to create in a team). Example: {title: 'Meeting Notes', body: '## Agenda\n...', container_id: 5, tag_list: 'meetings, q4'}.

notes-update

Update an existing note. Required: id (integer). Optional content: title, body (full replace), append_body (appends to existing body — mutually exclusive with body), summary, source_url. Optional organization: container_id (move note), archived (boolean, personal only), favorited (boolean). Optional tags: tag_list (full replace, comma-separated), add_tags (comma-separated tags to add), remove_tags (comma-separated tags to remove). tag_list takes precedence over add_tags/remove_tags if both provided. Example — append and add a tag: {id: 42, append_body: '\n## Update\nNew info here', add_tags: 'updated'}.

notes-delete

Permanently delete a note. This action is irreversible — the note and all its file attachments are destroyed. Required: id (integer).

containers-list

List containers (folders) for organizing notes. Each container includes notes_count and children_count. Optional: team_id (integer) for team containers, scope ('roots' default|'all'|'archived'), page, per_page. Shared containers are automatically included when listing root-level personal containers.

containers-get

Get a single container by ID, including notes_count, children_count, and LLM instructions if set. Optional: include_tree (boolean) to also get ancestor chain and children. Required: id (integer).

containers-create

Create a new container (folder) for organizing notes. Required: name (string). Optional: description (string), parent_id (integer) for nesting inside another container. After creating, consider setting up LLM instructions with instructions-update.

containers-update

Update an existing container — rename, change description, move to a different parent, or set display position. Required: id (integer). Optional: name, description, parent_id (null for root), position (integer, lower = first).

tags-list

List all tags with their notes_count. Paginated. Optional: page (integer), per_page (integer).

tags-create

Create a new tag. Check tags-list first to avoid duplicates. Required: name (string). Tag names are automatically lowercased.

teams-list

List all teams the user is a member of, including members_count, notes_count, and containers_count for each team. No parameters required.

teams-get

Get team details including the 10 most recent notes. Required: id (integer).

instructions-get

Get LLM instructions at the specified level. Call with level 'brain' early in conversations to learn user preferences. Required: level ('brain'|'personal_root'|'container'|'team'). Optional: id (integer, required for 'container' and 'team' levels). 'container' level returns the full inheritance chain (personal root -> ancestors -> container).

instructions-update

Update LLM instructions at the specified level. Required: level ('brain'|'personal_root'|'container'|'team'), instructions (string). Optional: id (integer, required for 'container' and 'team'), mode ('replace' default|'append'). In 'replace' mode (default), the provided text overwrites existing instructions. In 'append' mode, the text is appended to existing instructions with a newline separator. Always read current instructions first before replacing to avoid losing existing content.

links-manage

Create or remove a bidirectional link between two notes. Required: action ('link'|'unlink'), source_note_id (integer), target_note_id (integer). Prefer wiki-link syntax [[id:Title]] in note bodies for inline linking — use this tool for programmatic links without modifying body text. Unlinking is destructive and cannot be undone.

files-attach

Attach a file to a note via base64-encoded data. Prefer files-create_upload_url for large files to save tokens. Required: note_id (integer), filename (string), data (base64 string). Optional: content_type (MIME type, default: application/octet-stream), description.

files-attach_from_url

Fetch a file from a public URL and attach it to a note. Follows one redirect. Required: note_id (integer), url (string). Optional: filename (default: derived from URL), content_type (default: from HTTP response), description.

files-remove

Permanently remove a file attachment from a note. This action is irreversible. Required: note_id (integer), file_id (integer, from notes-get response).

files-create_upload_url

Generate a one-time upload URL for attaching a file to a note. Share this URL with the user so they can upload directly in their browser — saves tokens by avoiding base64 encoding. The link expires after 30 minutes. Use files-check_upload to verify completion. Required: note_id (integer). Optional: description.

files-check_upload

Check the status of a file upload created by files-create_upload_url. Returns status: 'pending' (not uploaded yet), 'completed' (file attached, includes file metadata), or 'expired' (link timed out). Required: token (string, from files-create_upload_url response).

files-get_download_url

Get a temporary download URL for a file attached to a note. Share the URL with the user to download in their browser. URL expires after a few minutes. Required: note_id (integer), file_id (integer, from notes-get response).

Tools
24 tools verified via live probe
verified 17m ago
Server: second-brainVersion: 1.0.0Protocol: 2024-11-05
Recent Probe Results
TimestampStatusLatencyConformance
Apr 4, 2026success149.8msPass
Apr 4, 2026success502.9msPass
Apr 4, 2026success518.9msPass
Apr 4, 2026success410.9msPass
Apr 4, 2026success175msPass
Apr 4, 2026success204.2msPass
Apr 4, 2026success156msPass
Apr 4, 2026success725.2msPass
Apr 4, 2026success154.5msPass
Apr 4, 2026success647.4msPass
Source Registries
mcp-registry
First Seen
Apr 1, 2026
Last Seen
Apr 4, 2026
Last Probed
Apr 4, 2026
com.hjarni/hjarni — Chiark Agent Quality Index