# MojaLab Content (remote · mojalab.com)

Read-only access to MojaLab.com blog content: search and read posts, pages and tags as Markdown.

- Trust score: 68/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mojalab.com`: 68/100 (this document), [markdown](https://verifymcp.io/servers/com-mojalab-content/mojalab.md), [page](https://verifymcp.io/servers/com-mojalab-content/mojalab)

## Channel facts

- Endpoint: `https://mojalab.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 9 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 80/100
  - 95% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 3137 tokens (~64/item across 49 items; 9 tools + 40 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-mojalab-content https://mojalab.com/mcp
```

### Codex

```toml
[mcp_servers.com-mojalab-content]
url = "https://mojalab.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-mojalab-content": {
      "type": "remote",
      "url": "https://mojalab.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-mojalab-content --url https://mojalab.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-mojalab-content:
    url: "https://mojalab.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-mojalab-content": {
      "type": "http",
      "url": "https://mojalab.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 68, 0)

- [security] Resource “✈️ Ask MojaLab AI Agent: Plan Your Next 24-Hour Trip!” now points somewhere else: ghost://post/ask-mojalab-ai-plan-your-next-24-hour-trip-2 → ghost://page/ask-mojalab-ai-agent-plan-your-next-24-hour-trip
- [functional] New resource “Two Front Doors: Giving MojaLab an MCP Server So Agents Can Read It Too”
- [functional] New resource “From "token" to "MoE": the LLM glossary in dependency order”

### 2026-08-02 (score 68, +1)

- [security] Resource “✈️ Ask MojaLab AI Agent: Plan Your Next 24-Hour Trip!” now points somewhere else: ghost://post/ask-mojalab-ai-plan-your-next-24-hour-trip-2 → ghost://page/ask-mojalab-ai-agent-plan-your-next-24-hour-trip
- [security] Tool “list_tags” rewrote its description, which is the text the model reads
- [security] Tool “get_post” rewrote its description, which is the text the model reads
- [security] Tool “list_posts” rewrote its description, which is the text the model reads
- [security] Tool “search_posts” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 2721 → 3013
- [functional regression] Resource “SerieSensei” was removed
- [functional] Server version: 1.0.0 → 2.0.0
- [functional] New tool “get_related_posts”
- [functional] New tool “get_site_summary”
- [functional] New tool “search_all”
- [cosmetic] “search_posts” added an optional parameter “excerpt_length”
- [cosmetic] “list_posts” added an optional parameter “since”
- [cosmetic] “list_posts” added an optional parameter “sort”
- [cosmetic] “search_posts” reworded the description of “query”
- [cosmetic] “search_posts” reworded the description of “limit”

### 2026-08-01 (score 67, +1)

- [security] Resource “✈️ Ask MojaLab AI Agent: Plan Your Next 24-Hour Trip!” now points somewhere else: ghost://post/ask-mojalab-ai-plan-your-next-24-hour-trip-2 → ghost://page/ask-mojalab-ai-agent-plan-your-next-24-hour-trip

### 2026-07-31 (score 66, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 67, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 66, 0)

- [security] Resource “✈️ Ask MojaLab AI Agent: Plan Your Next 24-Hour Trip!” now points somewhere else: ghost://post/ask-mojalab-ai-plan-your-next-24-hour-trip-2 → ghost://page/ask-mojalab-ai-agent-plan-your-next-24-hour-trip

### 2026-07-28 (score 66, +1)

- [security] Resource “✈️ Ask MojaLab AI Agent: Plan Your Next 24-Hour Trip!” now points somewhere else: ghost://post/ask-mojalab-ai-plan-your-next-24-hour-trip-2 → ghost://page/ask-mojalab-ai-agent-plan-your-next-24-hour-trip

### 2026-07-27 (score 65, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

## MCP tools (9)

### `list_posts` (~121 tokens)

List blog posts

List published MojaLab blog posts (title, slug, excerpt, tags, date). Paginated; optionally filter by tag slug, filter by publish date, and sort.

Input parameters:

- `limit` (integer): Posts per page (default 10, max 50)
- `page` (integer): Page number (default 1)
- `since` (string): Only posts published on/after this date (YYYY-MM-DD)
- `sort` (string): Sort order (default date_desc)
- `tag` (string): Filter by tag slug (see list_tags)

### `search_posts` (~86 tokens)

Search blog posts

Search published MojaLab posts by keyword or natural-language query. Results are ranked by relevance (0–1) using hybrid lexical + semantic matching. Use excerpt_length for longer previews.

Input parameters:

- `excerpt_length` (integer): Max excerpt characters (default 150)
- `limit` (integer): Max results (default 5)
- `query` (string, required): Keyword or question to search for

### `search_all` (~105 tokens)

Search all content

Search across all published content — blog posts, static pages/tools, and companion GitHub repositories — ranked by relevance. Each result is prefixed with [post], [page], or [repo].

Input parameters:

- `content_type` (string): Restrict to a content type (default all)
- `excerpt_length` (integer): Max excerpt characters (default 150)
- `limit` (integer): Max results (default 10)
- `query` (string, required): Keyword or question to search for

### `get_site_summary` (~55 tokens)

Get site summary

Get a concise overview of mojalab.com in one call: what the site is about, main topics, article/page counts, recent articles, and available tools/pages. Use for questions like "what is mojalab?".

### `get_related_posts` (~54 tokens)

Get related posts

Get posts related to a given post (by shared tags and content similarity), for recommendations.

Input parameters:

- `limit` (integer): Max related posts (default 3)
- `slug` (string, required): Slug of the reference post

### `get_post` (~48 tokens)

Get a blog post

Get the full content of a published MojaLab blog post as Markdown, by slug. Includes any companion repository link.

Input parameters:

- `slug` (string, required): Post slug, e.g. "hello-world"

### `list_tags` (~23 tokens)

List tags

List all public tags on MojaLab with their post counts and descriptions.

### `list_pages` (~54 tokens)

List static pages

List published static pages on MojaLab (about, tools, ...).

Input parameters:

- `limit` (integer): Pages per page (default 10, max 50)
- `page` (integer): Page number (default 1)

### `get_page` (~41 tokens)

Get a static page

Get the full content of a published MojaLab static page as Markdown, by slug.

Input parameters:

- `slug` (string, required): Page slug, e.g. "about"

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-mojalab-content/mojalab#diagnostics

## Score history

- 2026-08-03: 68
- 2026-08-02: 68
- 2026-08-01: 67
- 2026-07-31: 66
- 2026-07-30: 67
- 2026-07-29: 66
- 2026-07-28: 66
- 2026-07-27: 65
- 2026-07-26: 64

## Links

- Remote endpoint: https://mojalab.com/mcp
- Website: https://mojalab.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-mojalab-content/mojalab/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-mojalab-content/mojalab/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-mojalab-content/mojalab
