The Moorish Times MCP
An MCP server that allows AI agents to search, read, and cite content from The Moorish Times, a bilingual magazine on Moroccan history, heritage, culture, and current affairs. It supports generating timelines and citations without requiring user sign-in.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.moorish.cloud/mcpWhat you can do with it
- Search for articles and news briefs
- Read full content in French or English
- Generate timelines of events
- Cite sources with attribution links
Source and maintenance
Protocol and capabilities
- Server
- moorish-times 2.4.0
- MCP protocol
- 2025-06-18
- Tools
- 12 advertised
- Resources
- 18 advertised
- Resource templates
- 5 advertised
- Prompts
- 4 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
12 advertised
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"relevance",
"newest",
"oldest"
],
"type": "string",
"default": "relevance"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Every tag must be present, in French or English, e.g. [\"Casablanca\", \"Finance\"]. See list_tags."
},
"type": {
"enum": [
"article",
"news"
],
"type": "string",
"description": "article for long-form features, news for briefs."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1
},
"query": {
"type": "string",
"description": "Words to look for, e.g. zellige, Tanger Med, Guerre des Sables."
},
"since": {
"type": "string",
"description": "today, week, month, year, or a date (2026-09-01)."
},
"until": {
"type": "string",
"description": "A date, inclusive."
},
"author": {
"type": "string",
"description": "An author's slug or name from site_map, e.g. amerruki."
},
"cursor": {
"type": "string"
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string",
"default": "fr",
"description": "Edition: fr (primary) or en."
},
"category": {
"enum": [
"hist",
"cult",
"pol",
"actu",
"sport",
"eco"
],
"type": "string",
"description": "Section: hist history, cult culture, pol politics, actu current affairs, sport, eco economy."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"results",
"total"
],
"properties": {
"next": {
"type": [
"string",
"null"
],
"description": "Cursor for the next page, absent at the end."
},
"total": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Matches across all pages."
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"summary",
"type",
"category",
"tags",
"author",
"published",
"featured",
"url"
],
"properties": {
"id": {
"type": "string",
"description": "news/<slug> or articles/<slug>; pass to fetch, related, get_sources."
},
"url": {
"type": "string",
"description": "Page URL on moorishtimes.com."
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"enum": [
"article",
"news"
],
"type": "string"
},
"match": {
"enum": [
"keyword",
"semantic"
],
"type": "string",
"description": "How search found it."
},
"title": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "string"
},
"category": {
"type": "string",
"description": "hist, cult, pol, actu, sport or eco."
},
"featured": {
"type": "boolean",
"description": "On the front page (a la une)."
},
"published": {
"type": "string",
"description": "ISO 8601 publication time."
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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}.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "An id from search (news/<slug> or articles/<slug>) or a moorishtimes.com page URL in either language."
},
"format": {
"enum": [
"full",
"summary",
"outline"
],
"type": "string",
"default": "full"
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string",
"description": "Edition: fr or en. Defaults to the reference's own edition, else fr."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"title",
"text",
"url",
"metadata"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"description": "Page URL on moorishtimes.com."
},
"text": {
"type": "string",
"description": "Markdown with front matter."
},
"title": {
"type": "string"
},
"metadata": {
"type": "object",
"required": [
"locale",
"english_edition",
"translation",
"type",
"category",
"tags",
"author",
"published"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string"
},
"updated": {
"type": [
"string",
"null"
]
},
"category": {
"type": "string"
},
"published": {
"type": "string"
},
"translation": {
"type": [
"string",
"null"
]
},
"english_edition": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"tag": {
"type": "string"
},
"since": {
"type": "string",
"default": "week",
"description": "today, week, month, or a date."
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string",
"default": "fr",
"description": "Edition: fr (primary) or en."
},
"category": {
"enum": [
"hist",
"cult",
"pol",
"actu",
"sport",
"eco"
],
"type": "string",
"description": "Section: hist history, cult culture, pol politics, actu current affairs, sport, eco economy."
},
"featured_only": {
"type": "boolean",
"default": false
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"groups"
],
"properties": {
"groups": {
"type": "array",
"items": {
"type": "object",
"required": [
"category",
"label",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"summary",
"type",
"category",
"tags",
"author",
"published",
"featured",
"url"
],
"properties": {
"id": {
"type": "string",
"description": "news/<slug> or articles/<slug>; pass to fetch, related, get_sources."
},
"url": {
"type": "string",
"description": "Page URL on moorishtimes.com."
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"enum": [
"article",
"news"
],
"type": "string"
},
"match": {
"enum": [
"keyword",
"semantic"
],
"type": "string",
"description": "How search found it."
},
"title": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "string"
},
"category": {
"type": "string",
"description": "hist, cult, pol, actu, sport or eco."
},
"featured": {
"type": "boolean",
"description": "On the front page (a la une)."
},
"published": {
"type": "string",
"description": "ISO 8601 publication time."
}
},
"additionalProperties": false
}
},
"label": {
"type": "string"
},
"category": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": 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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locale": {
"enum": [
"fr",
"en"
],
"type": "string",
"default": "fr",
"description": "Edition: fr (primary) or en."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site",
"sections",
"tags",
"featured",
"authors",
"series"
],
"properties": {
"site": {
"type": "object",
"required": [
"fr",
"en",
"items"
],
"properties": {
"en": {
"type": "string"
},
"fr": {
"type": "string"
},
"items": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
},
"tags": {
"type": "array",
"items": {
"type": "object",
"required": [
"tag",
"fr",
"en",
"count"
],
"properties": {
"en": {
"type": "string"
},
"fr": {
"type": "string"
},
"tag": {
"type": "string"
},
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}
},
"series": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug",
"fr",
"en"
],
"properties": {
"en": {
"type": [
"string",
"null"
]
},
"fr": {
"type": "string"
},
"tag": {
"type": "string"
},
"slug": {
"type": "string"
},
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"title": {
"type": "string"
}
},
"additionalProperties": false
}
},
"authors": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug",
"name",
"count",
"fr",
"en"
],
"properties": {
"en": {
"type": [
"string",
"null"
]
},
"fr": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"slug": {
"type": "string"
},
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}
},
"featured": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"summary",
"type",
"category",
"tags",
"author",
"published",
"featured",
"url"
],
"properties": {
"id": {
"type": "string",
"description": "news/<slug> or articles/<slug>; pass to fetch, related, get_sources."
},
"url": {
"type": "string",
"description": "Page URL on moorishtimes.com."
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"enum": [
"article",
"news"
],
"type": "string"
},
"match": {
"enum": [
"keyword",
"semantic"
],
"type": "string",
"description": "How search found it."
},
"title": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "string"
},
"category": {
"type": "string",
"description": "hist, cult, pol, actu, sport or eco."
},
"featured": {
"type": "boolean",
"description": "On the front page (a la une)."
},
"published": {
"type": "string",
"description": "ISO 8601 publication time."
}
},
"additionalProperties": false
}
},
"sections": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"label",
"count",
"fr",
"en"
],
"properties": {
"en": {
"type": "string"
},
"fr": {
"type": "string"
},
"id": {
"type": "string"
},
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"label": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"slug": {
"type": "string",
"description": "A series slug from the list, e.g. elections."
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string",
"default": "fr",
"description": "Edition: fr (primary) or en."
}
}
}{
"type": "object",
"anyOf": [
{
"type": "object",
"required": [
"series"
],
"properties": {
"series": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug",
"title",
"tag",
"count",
"latest"
],
"properties": {
"tag": {
"type": "string"
},
"slug": {
"type": "string"
},
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"title": {
"type": "string"
},
"latest": {
"anyOf": [
{
"type": "object",
"required": [
"id",
"title",
"summary",
"type",
"category",
"tags",
"author",
"published",
"featured",
"url"
],
"properties": {
"id": {
"type": "string",
"description": "news/<slug> or articles/<slug>; pass to fetch, related, get_sources."
},
"url": {
"type": "string",
"description": "Page URL on moorishtimes.com."
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"enum": [
"article",
"news"
],
"type": "string"
},
"match": {
"enum": [
"keyword",
"semantic"
],
"type": "string",
"description": "How search found it."
},
"title": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "string"
},
"category": {
"type": "string",
"description": "hist, cult, pol, actu, sport or eco."
},
"featured": {
"type": "boolean",
"description": "On the front page (a la une)."
},
"published": {
"type": "string",
"description": "ISO 8601 publication time."
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"slug",
"title",
"tag",
"items"
],
"properties": {
"tag": {
"type": "string"
},
"slug": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"summary",
"type",
"category",
"tags",
"author",
"published",
"featured",
"url"
],
"properties": {
"id": {
"type": "string",
"description": "news/<slug> or articles/<slug>; pass to fetch, related, get_sources."
},
"url": {
"type": "string",
"description": "Page URL on moorishtimes.com."
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"enum": [
"article",
"news"
],
"type": "string"
},
"match": {
"enum": [
"keyword",
"semantic"
],
"type": "string",
"description": "How search found it."
},
"title": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "string"
},
"category": {
"type": "string",
"description": "hist, cult, pol, actu, sport or eco."
},
"featured": {
"type": "boolean",
"description": "On the front page (a la une)."
},
"published": {
"type": "string",
"description": "ISO 8601 publication time."
}
},
"additionalProperties": false
}
},
"title": {
"type": "string"
}
},
"additionalProperties": false
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"tag": {
"type": "string",
"description": "A tag from list_tags, e.g. Diplomatie."
},
"type": {
"enum": [
"article",
"news"
],
"type": "string",
"description": "article for long-form features, news for briefs."
},
"query": {
"type": "string",
"description": "Words, e.g. MINURSO or Tanger Med."
},
"since": {
"type": "string"
},
"until": {
"type": "string"
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string",
"default": "fr",
"description": "Edition: fr (primary) or en."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"summary",
"type",
"category",
"tags",
"author",
"published",
"featured",
"url"
],
"properties": {
"id": {
"type": "string",
"description": "news/<slug> or articles/<slug>; pass to fetch, related, get_sources."
},
"url": {
"type": "string",
"description": "Page URL on moorishtimes.com."
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"enum": [
"article",
"news"
],
"type": "string"
},
"match": {
"enum": [
"keyword",
"semantic"
],
"type": "string",
"description": "How search found it."
},
"title": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "string"
},
"category": {
"type": "string",
"description": "hist, cult, pol, actu, sport or eco."
},
"featured": {
"type": "boolean",
"description": "On the front page (a la une)."
},
"published": {
"type": "string",
"description": "ISO 8601 publication time."
}
},
"additionalProperties": false
},
"description": "Oldest first."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}related — Related pieces
Pieces that share tags and section with a given piece, the closest first.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "An id from search (news/<slug> or articles/<slug>) or a moorishtimes.com page URL in either language."
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string",
"description": "Edition: fr or en. Defaults to the reference's own edition, else fr."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"summary",
"type",
"category",
"tags",
"author",
"published",
"featured",
"url"
],
"properties": {
"id": {
"type": "string",
"description": "news/<slug> or articles/<slug>; pass to fetch, related, get_sources."
},
"url": {
"type": "string",
"description": "Page URL on moorishtimes.com."
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"enum": [
"article",
"news"
],
"type": "string"
},
"match": {
"enum": [
"keyword",
"semantic"
],
"type": "string",
"description": "How search found it."
},
"title": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "string"
},
"category": {
"type": "string",
"description": "hist, cult, pol, actu, sport or eco."
},
"featured": {
"type": "boolean",
"description": "On the front page (a la une)."
},
"published": {
"type": "string",
"description": "ISO 8601 publication time."
}
},
"additionalProperties": false
},
"description": "Closest first."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "An id from search (news/<slug> or articles/<slug>) or a moorishtimes.com page URL in either language."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"urls",
"rows"
],
"properties": {
"rows": {
"type": "array",
"items": {
"type": "object",
"required": [
"fr",
"en"
],
"properties": {
"en": {
"type": "string"
},
"fr": {
"type": "string"
}
},
"additionalProperties": false
}
},
"urls": {
"type": "object",
"required": [
"fr",
"en"
],
"properties": {
"en": {
"type": [
"string",
"null"
]
},
"fr": {
"type": "string"
}
},
"additionalProperties": false
},
"aligned": {
"type": "boolean"
},
"enBlocks": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"frBlocks": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "An id from search (news/<slug> or articles/<slug>) or a moorishtimes.com page URL in either language."
},
"style": {
"enum": [
"apa",
"mla",
"chicago"
],
"type": "string",
"default": "apa"
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string",
"description": "Edition: fr or en. Defaults to the reference's own edition, else fr."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url",
"citation",
"references",
"links",
"credits"
],
"properties": {
"url": {
"type": "string",
"description": "Page URL on moorishtimes.com."
},
"links": {
"type": "array",
"items": {
"type": "string"
}
},
"credits": {
"type": "array",
"items": {
"type": "object",
"required": [
"image",
"caption",
"credit"
],
"properties": {
"image": {
"type": "string"
},
"credit": {
"type": [
"string",
"null"
]
},
"caption": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"citation": {
"type": "string"
},
"references": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locale": {
"enum": [
"fr",
"en"
],
"type": "string",
"default": "fr",
"description": "Edition: fr (primary) or en."
},
"prefix": {
"type": "string",
"description": "Accent-insensitive start of the tag in either language, e.g. tan for Tanger."
},
"category": {
"enum": [
"hist",
"cult",
"pol",
"actu",
"sport",
"eco"
],
"type": "string",
"description": "Section: hist history, cult culture, pol politics, actu current affairs, sport, eco economy."
},
"min_count": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tags"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "object",
"required": [
"tag",
"fr",
"en",
"count"
],
"properties": {
"en": {
"type": "string"
},
"fr": {
"type": "string"
},
"tag": {
"type": "string"
},
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"kind",
"message"
],
"properties": {
"kind": {
"enum": [
"story",
"correction",
"rights",
"ads",
"other"
],
"type": "string",
"description": "story (a tip), correction (an error in a piece; give its page), rights, ads or other."
},
"page": {
"type": "string",
"format": "uri",
"description": "The moorishtimes.com page it is about, if any."
},
"message": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "The message, in French or English."
},
"language": {
"enum": [
"fr",
"en"
],
"type": "string"
},
"reply_to": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "The user's email, only if they want a reply."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"status"
],
"properties": {
"id": {
"type": "string",
"description": "Reference for the message."
},
"status": {
"type": "string",
"const": "received"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task",
"description"
],
"properties": {
"task": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The task in a few words, e.g. Read a piece in Arabic."
},
"description": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "What was wanted and what was missing. No names, emails or other personal data."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"const": "received"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}Prompts
4 advertised
morning_brief — Morning brief on Morocco
A short brief of the last 24 hours from The Moorish Times.
- locale
- No description
- sections
- Comma-separated, e.g. eco,pol
explain_topic — Explain a topic with sources
Explain a Moroccan history, heritage or current-affairs topic from The Moorish Times, with citations.
- topic
- No description (required)
- locale
- No description
follow_story — Follow a story
How a story developed over time in The Moorish Times.
- topic
- A tag or words, e.g. MINURSO (required)
- locale
- No description
city_guide — City guide
Heritage, culture and recent news about one Moroccan city.
- city
- e.g. Fes, Tanger, Rabat, Casablanca (required)
- locale
- No description
Resources
18 advertised
site — The Moorish Times site map
Sections, tags, featured pieces, authors and series.
tmt://siteWealth of Morocco — Pieces by one author
tmt://author/wealth-of-moroccoAmerruki — Pieces by one author
tmt://author/amerrukiMoroccan Royal Archives — Pieces by one author
tmt://author/moroccan-archivesMoorish Movement — Pieces by one author
tmt://author/moorishmovementAdil Astaib — Pieces by one author
tmt://author/adilCarl Johnson — Pieces by one author
tmt://author/carl-johnsonLe Maure Malikite — Pieces by one author
tmt://author/mauremalikiteThe Riffian Museum — Pieces by one author
tmt://author/riffian-museumMazighan Daily — Pieces by one author
tmt://author/mazighan2026 parliamentary elections — One series, oldest piece first
tmt://series/electionsMoroccan Sahara — One series, oldest piece first
tmt://series/saharaHistory / Histoire — A section of the magazine
tmt://section/histCulture / Culture — A section of the magazine
tmt://section/cultPolitics / Politique — A section of the magazine
tmt://section/polNews / Actualité — A section of the magazine
tmt://section/actuSport / Sport — A section of the magazine
tmt://section/sportEconomy / Économie — A section of the magazine
tmt://section/ecoauthor — Pieces by one author
tmt://author/{slug}{?locale,cursor}series — One series, oldest piece first
tmt://series/{slug}{?locale}section — A section of the magazine
tmt://section/{category}{?locale,cursor}tag — Pieces carrying one tag
tmt://tag/{tag}{?locale,cursor}item — One piece as Markdown
tmt://item/{collection}/{slug}{?locale}30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 664 ms
- 95th percentile latency
- 664 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 664 ms · metadata changed · 12 tool(s), 18 resource(s), 5 resource template(s), 4 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http the-moorish-times-mcp https://mcp.moorish.cloud/mcpCodex
codex mcp add the-moorish-times-mcp --url https://mcp.moorish.cloud/mcpCursor
{
"mcpServers": {
"the-moorish-times-mcp": {
"url": "https://mcp.moorish.cloud/mcp"
}
}
}Cline
{
"mcpServers": {
"the-moorish-times-mcp": {
"type": "streamableHttp",
"url": "https://mcp.moorish.cloud/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"the-moorish-times-mcp": {
"type": "http",
"url": "https://mcp.moorish.cloud/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http the-moorish-times-mcp https://mcp.moorish.cloud/mcpClaude Desktop
{
"mcpServers": {
"the-moorish-times-mcp": {
"url": "https://mcp.moorish.cloud/mcp"
}
}
}Windsurf
{
"mcpServers": {
"the-moorish-times-mcp": {
"serverUrl": "https://mcp.moorish.cloud/mcp"
}
}
}Let your agent find its tools
Find servers like The Moorish Times MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other documentation and reference servers
Do you run The Moorish Times MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.