# The Moorish Times MCP server

Search, read and cite The Moorish Times, a bilingual French and English magazine on Moroccan history, heritage, culture and current affairs. Reading needs no account; two tools write: send_to_newsroom passes a message to the newsroom and report_missing logs a task the server could not do.

## Connect

- Endpoint: https://mcp.moorish.cloud/mcp (Streamable HTTP; POST JSON-RPC)
- Server card: https://moorishtimes.com/.well-known/mcp/server-card.json (also https://mcp.moorish.cloud/.well-known/mcp/server-card.json)
- MCP Registry: com.moorishtimes/moorish-times
- Health: https://mcp.moorish.cloud/health (JSON; 503 when the API behind it is down)

## Tools

### `search`

Search articles and news. Search every article and news brief by words, section, tags, author and date range, in French or English. Accent-insensitive keyword match first, then pieces close in meaning (match: semantic) when keywords find few. Leave query empty to browse newest first. Returns JSON {results: [{id, title, url, summary, published, ...}], next, total}; pass next as cursor for more.

Parameters:

  - `query` (string): Words to look for, e.g. zellige, Tanger Med, Guerre des Sables.
  - `locale` (string): Edition: fr (primary) or en. One of: fr, en. Default: fr.
  - `type` (string): article for long-form features, news for briefs. One of: article, news.
  - `category` (string): Section: hist history, cult culture, pol politics, actu current affairs, sport, eco economy. One of: hist, cult, pol, actu, sport, eco.
  - `tags` (array): Every tag must be present, in French or English, e.g. ["Casablanca", "Finance"]. See list_tags.
  - `author` (string): An author's slug or name from site_map, e.g. amerruki.
  - `since` (string): today, week, month, year, or a date (2026-09-01).
  - `until` (string): A date, inclusive.
  - `sort` (string): One of: relevance, newest, oldest. Default: relevance.
  - `limit` (integer): From 1 to 25. Default: 10.
  - `cursor` (string)

### `fetch`

Read one piece. The full text of one article or news brief, as Markdown with front matter (title, url, date, author, tags, translation link) and its references. format summary gives the front matter and summary only; outline gives the section headings. Falls back to French when the piece has no English edition, and says so. Returns JSON {id, title, text, url, metadata}.

Parameters:

  - `id` (string, required): An id from search (news/<slug> or articles/<slug>) or a moorishtimes.com page URL in either language.
  - `locale` (string): Edition: fr or en. Defaults to the reference's own edition, else fr. One of: fr, en.
  - `format` (string): One of: full, summary, outline. Default: full.

### `whats_new`

What's new. A digest of recent pieces grouped by section, featured pieces first: what happened in Morocco today, this week or this month according to The Moorish Times.

Parameters:

  - `since` (string): today, week, month, or a date. Default: week.
  - `locale` (string): Edition: fr (primary) or en. One of: fr, en. Default: fr.
  - `category` (string): Section: hist history, cult culture, pol politics, actu current affairs, sport, eco economy. One of: hist, cult, pol, actu, sport, eco.
  - `tag` (string)
  - `featured_only` (boolean): Default: false.

### `site_map`

Site map. What the magazine covers: sections with counts and URLs, the most used tags, featured pieces, author pages and series. Start here to browse.

Parameters:

  - `locale` (string): Edition: fr (primary) or en. One of: fr, en. Default: fr.

### `series`

Series. Running stories the desk follows as one series, such as the 2026 elections or the Sahara. Without a slug, lists every series with its count and latest piece; with one, gives every piece in reading order, oldest first.

Parameters:

  - `slug` (string): A series slug from the list, e.g. elections.
  - `locale` (string): Edition: fr (primary) or en. One of: fr, en. Default: fr.

### `timeline`

Follow a story. Every piece on a tag or topic in date order, oldest first, to follow how a story unfolded. Marks the first and latest mention.

Parameters:

  - `tag` (string): A tag from list_tags, e.g. Diplomatie.
  - `query` (string): Words, e.g. MINURSO or Tanger Med.
  - `since` (string)
  - `until` (string)
  - `locale` (string): Edition: fr (primary) or en. One of: fr, en. Default: fr.
  - `type` (string): article for long-form features, news for briefs. One of: article, news.

### `related`

Related pieces. Pieces that share tags and section with a given piece, the closest first.

Parameters:

  - `id` (string, required): An id from search (news/<slug> or articles/<slug>) or a moorishtimes.com page URL in either language.
  - `locale` (string): Edition: fr or en. Defaults to the reference's own edition, else fr. One of: fr, en.
  - `limit` (integer): From 1 to 10. Default: 5.

### `compare_editions`

French and English side by side. Both editions of one piece aligned block by block, with both URLs. For readers comparing the languages or checking a translation.

Parameters:

  - `id` (string, required): An id from search (news/<slug> or articles/<slug>) or a moorishtimes.com page URL in either language.

### `get_sources`

Sources and citation. A piece's references, outbound links and image credits, plus a ready citation of the piece itself in APA, MLA or Chicago style.

Parameters:

  - `id` (string, required): An id from search (news/<slug> or articles/<slug>) or a moorishtimes.com page URL in either language.
  - `locale` (string): Edition: fr or en. Defaults to the reference's own edition, else fr. One of: fr, en.
  - `style` (string): One of: apa, mla, chicago. Default: apa.

### `list_tags`

List tags. Tags with the number of pieces carrying each, most used first, named in the asked edition with both names in the data. Use either name in search, whats_new and timeline.

Parameters:

  - `locale` (string): Edition: fr (primary) or en. One of: fr, en. Default: fr.
  - `prefix` (string): Accent-insensitive start of the tag in either language, e.g. tan for Tanger.
  - `category` (string): Section: hist history, cult culture, pol politics, actu current affairs, sport, eco economy. One of: hist, cult, pol, actu, sport, eco.
  - `min_count` (integer): Default: 1.

### `send_to_newsroom`

Message the newsroom. Send the newsroom a story tip, a correction, a rights or advertising request, or another message, on the user's behalf and with their consent. Write the message in the user's words; include their email in reply_to only if they want an answer. Agents with a token from https://moorishtimes.com/auth.md (scope newsroom:send) send it as a Bearer header on this connection; without one, sends are limited per network. Writes; not read-only.

Parameters:

  - `kind` (string, required): story (a tip), correction (an error in a piece; give its page), rights, ads or other. One of: story, correction, rights, ads, other.
  - `message` (string, required): The message, in French or English.
  - `reply_to` (string): The user's email, only if they want a reply.
  - `page` (string): The moorishtimes.com page it is about, if any.
  - `language` (string): One of: fr, en.

### `report_missing`

Report something you could not do. Tell The Moorish Times about a task a reader wanted that this server, the site or the API could not do. Describe the task, never the reader. No personal data. Writes; not read-only.

Parameters:

  - `task` (string, required): The task in a few words, e.g. Read a piece in Arabic.
  - `description` (string, required): What was wanted and what was missing. No names, emails or other personal data.

## Limits

- Reading tools have no rate limit. Keep requests reasonable.
- `send_to_newsroom`: 1 per minute per network without a token; with a token from https://moorishtimes.com/auth.md, 3 per hour per agent. The newsroom takes at most 50 messages a day in all.
- `report_missing` and POST /feedback: 5 per minute per network.
- Over a limit, the tool returns an error that says so.

## Without an MCP client

- Any article or news page as Markdown: send `Accept: text/markdown`.
- Every piece in one file: https://moorishtimes.com/llms-full.txt (French) and https://moorishtimes.com/en/llms-full.txt (English).
- Overview and section files: https://moorishtimes.com/llms.txt. JSON Feed: https://moorishtimes.com/feed.
- JSON API reference: https://api.moorish.app/v1/docs (OpenAPI: https://api.moorish.app/v1/openapi.json).
- A2A: https://mcp.moorish.cloud/a2a.

Contact: info@moorishtimes.com.
