gitlab-mcp
A Model Context Protocol (MCP) server for GitLab
Crawler Summary
Fetch Notion articles by slug or page ID and publish to X Articles. Use when user wants to publish Notion content to X, mentions "Notion to X", "publish Notion article to Twitter", "把 Notion 文章发到 X", or wants to fetch a Notion page and post to X Articles. This skill handles the COMPLETE workflow from Notion to X draft - no need to invoke other skills separately. --- name: notion-to-x-publisher description: Fetch Notion articles by slug or page ID and publish to X Articles. Use when user wants to publish Notion content to X, mentions "Notion to X", "publish Notion article to Twitter", "把 Notion 文章发到 X", or wants to fetch a Notion page and post to X Articles. This skill handles the COMPLETE workflow from Notion to X draft - no need to invoke other skills separately. --- Notion Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 4/15/2026.
Freshness
Last checked 4/15/2026
Best For
notion-to-x-publisher is best for general automation workflows where MCP compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
Fetch Notion articles by slug or page ID and publish to X Articles. Use when user wants to publish Notion content to X, mentions "Notion to X", "publish Notion article to Twitter", "把 Notion 文章发到 X", or wants to fetch a Notion page and post to X Articles. This skill handles the COMPLETE workflow from Notion to X draft - no need to invoke other skills separately. --- name: notion-to-x-publisher description: Fetch Notion articles by slug or page ID and publish to X Articles. Use when user wants to publish Notion content to X, mentions "Notion to X", "publish Notion article to Twitter", "把 Notion 文章发到 X", or wants to fetch a Notion page and post to X Articles. This skill handles the COMPLETE workflow from Notion to X draft - no need to invoke other skills separately. --- Notion
Public facts
5
Change events
1
Artifacts
0
Freshness
Apr 15, 2026
Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Apr 15, 2026
Vendor
Innomad Io
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. 1 GitHub stars reported by the source. Last updated 4/15/2026.
Setup snapshot
git clone https://github.com/innomad-io/notion-to-x-publisher.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Innomad Io
Protocol compatibility
MCP
Adoption signal
1 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
bash
# Phase 1: 获取 Notion 文章 python ~/.claude/skills/notion-to-x-publisher/scripts/fetch_notion_article.py \ --slug "<slug>" --output-dir /tmp/notion_article # 或 --page-id "<page_id>" # Phase 2: 解析 Markdown(使用 x-article-publisher 脚本) python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \ /tmp/notion_article/<slug>.md > /tmp/article.json python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \ /tmp/notion_article/<slug>.md --html-only > /tmp/article_html.html # Phase 3: 浏览器自动化发布(按 x-article-publisher 流程) # 1. browser_navigate: https://x.com/compose/articles # 2. Click "create" button # 3. Upload cover image (browser_file_upload) # 4. Fill title # 5. Copy HTML to clipboard & paste # 6. Insert content images at block positions (reverse order) # 7. Save draft
bash
# By page ID python fetch_notion_article.py --page-id <notion_page_id> # By slug (requires DATABASE_ID) python fetch_notion_article.py --slug <article_slug> # With output directory for images python fetch_notion_article.py --page-id <id> --output-dir /tmp/notion_article
json
{
"title": "Article Title",
"slug": "article-slug",
"markdown": "# Article Title\n\nContent with images...",
"markdown_file": "/tmp/notion_article/article.md",
"images": [
{"original_url": "https://...", "local_path": "/tmp/notion_article/images/image_001.png", "type": "external"},
{"original_url": "https://prod-files...", "local_path": "/tmp/notion_article/images/image_002.jpg", "type": "notion_file"}
],
"cover_image": "/tmp/notion_article/images/cover.jpg"
}bash
# By slug python ~/.claude/skills/notion-to-x-publisher/scripts/fetch_notion_article.py \ --slug "my-article-slug" \ --output-dir /tmp/notion_article # By page ID python ~/.claude/skills/notion-to-x-publisher/scripts/fetch_notion_article.py \ --page-id "abc123..." \ --output-dir /tmp/notion_article
bash
python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \ /tmp/notion_article/article.md > /tmp/article.json python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \ /tmp/notion_article/article.md --html-only > /tmp/article_html.html
bash
python fetch_notion_article.py --slug xxx --notion-token "secret_xxx" --database-id "abc123"
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
Fetch Notion articles by slug or page ID and publish to X Articles. Use when user wants to publish Notion content to X, mentions "Notion to X", "publish Notion article to Twitter", "把 Notion 文章发到 X", or wants to fetch a Notion page and post to X Articles. This skill handles the COMPLETE workflow from Notion to X draft - no need to invoke other skills separately. --- name: notion-to-x-publisher description: Fetch Notion articles by slug or page ID and publish to X Articles. Use when user wants to publish Notion content to X, mentions "Notion to X", "publish Notion article to Twitter", "把 Notion 文章发到 X", or wants to fetch a Notion page and post to X Articles. This skill handles the COMPLETE workflow from Notion to X draft - no need to invoke other skills separately. --- Notion
Fetch articles from Notion by slug or page ID, convert to Markdown with images, and publish to X Articles editor.
这是一个端到端的 Skill:当用户要求发布 Notion 文章到 X 时,按照本文档的完整流程执行,无需用户额外指示。
当用户说 "把 slug xxx 发布到 X" 或 "publish Notion page abc123 to X" 时,执行以下完整流程:
# Phase 1: 获取 Notion 文章
python ~/.claude/skills/notion-to-x-publisher/scripts/fetch_notion_article.py \
--slug "<slug>" --output-dir /tmp/notion_article
# 或 --page-id "<page_id>"
# Phase 2: 解析 Markdown(使用 x-article-publisher 脚本)
python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \
/tmp/notion_article/<slug>.md > /tmp/article.json
python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \
/tmp/notion_article/<slug>.md --html-only > /tmp/article_html.html
# Phase 3: 浏览器自动化发布(按 x-article-publisher 流程)
# 1. browser_navigate: https://x.com/compose/articles
# 2. Click "create" button
# 3. Upload cover image (browser_file_upload)
# 4. Fill title
# 5. Copy HTML to clipboard & paste
# 6. Insert content images at block positions (reverse order)
# 7. Save draft
pip install Pillow pyobjc-framework-Cocoa notion-clientpip install Pillow pywin32 clip-util notion-clientNOTION_TOKEN: Notion integration tokenDATABASE_ID: Notion database ID (optional, for slug lookup)Located in ~/.claude/skills/notion-to-x-publisher/scripts/:
Fetch a Notion article and convert to Markdown:
# By page ID
python fetch_notion_article.py --page-id <notion_page_id>
# By slug (requires DATABASE_ID)
python fetch_notion_article.py --slug <article_slug>
# With output directory for images
python fetch_notion_article.py --page-id <id> --output-dir /tmp/notion_article
Output JSON:
{
"title": "Article Title",
"slug": "article-slug",
"markdown": "# Article Title\n\nContent with images...",
"markdown_file": "/tmp/notion_article/article.md",
"images": [
{"original_url": "https://...", "local_path": "/tmp/notion_article/images/image_001.png", "type": "external"},
{"original_url": "https://prod-files...", "local_path": "/tmp/notion_article/images/image_002.jpg", "type": "notion_file"}
],
"cover_image": "/tmp/notion_article/images/cover.jpg"
}
Key features:
一键发布流程 (One-Command Publishing)
# By slug
python ~/.claude/skills/notion-to-x-publisher/scripts/fetch_notion_article.py \
--slug "my-article-slug" \
--output-dir /tmp/notion_article
# By page ID
python ~/.claude/skills/notion-to-x-publisher/scripts/fetch_notion_article.py \
--page-id "abc123..." \
--output-dir /tmp/notion_article
python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \
/tmp/notion_article/article.md > /tmp/article.json
python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \
/tmp/notion_article/article.md --html-only > /tmp/article_html.html
Follow the x-article-publisher SKILL.md workflow:
| Variable | Required | Description | |----------|----------|-------------| | NOTION_TOKEN | Yes | Notion integration token | | DATABASE_ID | For slug lookup | Notion database ID containing articles |
命令行参数(最高优先级):
python fetch_notion_article.py --slug xxx --notion-token "secret_xxx" --database-id "abc123"
环境变量:
export NOTION_TOKEN="secret_xxx..."
export DATABASE_ID="abc123..."
.env 文件(自动加载):
.env~/.env.env或通过 --env-file 指定:
python fetch_notion_article.py --slug xxx --env-file /path/to/.env
# Notion credentials
NOTION_TOKEN=secret_xxx...
DATABASE_ID=abc123...
"发布 Notion 文章 my-article-slug 到 X"
"Publish my Notion article with page ID abc123 to X Articles"
"把 Notion 里的这篇文章发到推特: xxx"
# Step 1: Fetch from Notion (by slug)
python ~/.claude/skills/notion-to-x-publisher/scripts/fetch_notion_article.py \
--slug "ai-tools-2024" \
--output-dir /tmp/notion_article
# Step 2: Parse Markdown for X
python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \
/tmp/notion_article/article.md > /tmp/article.json
python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \
/tmp/notion_article/article.md --html-only > /tmp/article_html.html
# Step 3: Use browser automation to publish (follow x-article-publisher flow)
# ... (browser navigation, image upload, paste HTML, etc.)
External Images: Regular URLs (https://example.com/image.jpg)
Notion File Images: Notion-hosted files (https://prod-files-secure.s3.us-west-2.amazonaws.com/...)
{output_dir}/images/cover.{ext}当用户请求发布 Notion 文章到 X 时,按以下步骤完整执行:
# 确定输出目录
OUTPUT_DIR="/tmp/notion_article"
# 按 slug 获取(如果用户提供了 slug)
python ~/.claude/skills/notion-to-x-publisher/scripts/fetch_notion_article.py \
--slug "<user_provided_slug>" \
--output-dir $OUTPUT_DIR
# 或按 page ID 获取(如果用户提供了 page ID)
python ~/.claude/skills/notion-to-x-publisher/scripts/fetch_notion_article.py \
--page-id "<user_provided_page_id>" \
--output-dir $OUTPUT_DIR
从输出 JSON 中获取:
markdown_file: Markdown 文件路径cover_image: 封面图路径title: 文章标题# 获取结构化数据
python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \
$OUTPUT_DIR/<slug>.md > /tmp/article.json
# 生成 HTML 用于粘贴
python ~/.claude/skills/x-article-publisher/scripts/parse_markdown.py \
$OUTPUT_DIR/<slug>.md --html-only > /tmp/article_html.html
从 article.json 中获取:
title: 标题cover_image: 封面图(可能与 Phase 1 不同,以此为准)content_images: 内容图片数组(含 block_index)total_blocks: 总块数按照 x-article-publisher SKILL.md 的详细步骤执行:
browser_navigate: https://x.com/compose/articles
browser_snapshot # 找到 create 按钮
browser_click: create button
browser_click: "添加照片或视频" button
browser_file_upload: <cover_image_path>
browser_click: 应用 button
browser_type: element="添加标题" textbox, text="<title>"
# 复制 HTML 到剪贴板
python ~/.claude/skills/x-article-publisher/scripts/copy_to_clipboard.py \
html --file /tmp/article_html.html
browser_click: editor textbox
browser_press_key: Meta+v
对于每张图片(从 content_images 数组,按 block_index 降序):
# 复制图片到剪贴板
python ~/.claude/skills/x-article-publisher/scripts/copy_to_clipboard.py \
image <image_path> --quality 85
browser_snapshot # 找到对应 block
browser_click: block element at block_index position
browser_press_key: Meta+v
browser_wait_for: textGone="正在上传媒体" time=2
# 草稿自动保存,验证内容
browser_snapshot
# 报告: "草稿已保存。请手动检查并发布。"
用户可能这样说:
识别到这些请求时,自动执行上述完整流程。
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/contract"
curl -s "https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
A Model Context Protocol (MCP) server for GitLab
A Model Context Protocol (MCP) server for GitLab
This agent researches trends, scripts videos, sets up engagement automation, and compiles everything into a shareable document.
This agent analyzes Reddit data to generate trending content concepts tailored to your audience.
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-10-09T02:28:19.732Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"category": "integration",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "vendor",
"label": "Vendor",
"value": "Innomad Io",
"category": "vendor",
"href": "https://github.com/innomad-io/notion-to-x-publisher",
"sourceUrl": "https://github.com/innomad-io/notion-to-x-publisher",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T03:16:35.089Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "protocols",
"label": "Protocol compatibility",
"value": "MCP",
"category": "compatibility",
"href": "https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T03:16:35.089Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "traction",
"label": "Adoption signal",
"value": "1 GitHub stars",
"category": "adoption",
"href": "https://github.com/innomad-io/notion-to-x-publisher",
"sourceUrl": "https://github.com/innomad-io/notion-to-x-publisher",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T03:16:35.089Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "handshake_status",
"label": "Handshake status",
"value": "UNKNOWN",
"category": "security",
"href": "https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/innomad-io-notion-to-x-publisher/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true,
"metadata": {}
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true,
"metadata": {}
}
]Sponsored
Ads related to notion-to-x-publisher and adjacent AI workflows.