mdshare-mcp

mdshare-mcp

Enables AI chat clients to publish markdown content to an mdshare service and retrieve previously published pastes via MCP tools, without manual file uploads or curl requests.

Category
Visit Server

README

mdshare-mcp

MCP server cho phép AI chat (Claude, và các client hỗ trợ MCP) gọi trực tiếp 1 tool publish_markdown để đăng nội dung markdown lên dịch vụ mdshare đã deploy trước đó — không cần tải file về máy rồi tự curl lên.

Kiến trúc

Claude.ai (chat) → tool "publish_markdown" → mdshare-mcp (server này) → POST → mdshare → trả URL

Đây là MCP server dạng Remote (Streamable HTTP), chạy độc lập trên Render — khác với MCP server "local (stdio)" chỉ chạy được khi cài trên máy cá nhân. Vì bạn dùng Claude qua web, bản Remote HTTP là lựa chọn đúng: không cần cài gì trên máy.

2 tool được cung cấp

  • publish_markdown(content) — đăng nội dung markdown lên mdshare, trả về URL xem và URL raw.
  • fetch_markdown(key_or_url) — tải lại nội dung 1 paste đã đăng, dựa vào key hoặc URL (chấp nhận cả dạng domain/p/keydomain/p/key/raw). Đây là tool fallback quan trọng: một số AI chat (đã ghi nhận với ChatGPT) không tự fetch được URL trả về Content-Type: text/plain thuần — trình duyệt-tool tích hợp của các client này thường được thiết kế để đọc trang HTML (có <title>, cấu trúc DOM...), và có thể coi 1 file text thuần là "file tải xuống" rồi từ chối đọc nội dung thay vì hiển thị. Khi gặp tình huống đó, chỉ cần yêu cầu AI chat gọi tool fetch_markdown thay vì tự mở URL — nội dung sẽ được tải về ngay trong server, trả thẳng vào kết quả tool, không phụ thuộc vào khả năng duyệt web của client.

Nền tảng nào hỗ trợ custom MCP server? (thông tin tại thời điểm viết, có thể thay đổi)

Nền tảng Hỗ trợ custom remote MCP? Ghi chú
Claude Tất cả các gói, kể cả free
ChatGPT Cần bật Developer Mode, gói trả phí (Plus/Pro/Business/Enterprise/Edu)
Grok Gói trả phí, mục "Bring Your Own MCP" tại grok.com/connectors
Qwen, DeepSeek, Kimi, z.ai (GLM), Manus, Meta AI Chưa rõ / có thể chưa hỗ trợ ở chat UI tiêu dùng Một số bên hỗ trợ MCP theo hướng khác (làm MCP server cho client khác gọi vào, hoặc qua SDK lập trình), nhưng chưa xác nhận có ô "thêm custom MCP server" trong giao diện chat web thông thường

Vì server này tuân thủ đúng chuẩn MCP (Streamable HTTP), nó sẽ tự động chạy được với bất kỳ client nào hỗ trợ chuẩn — không cần sửa code theo từng nền tảng. Với các nền tảng ở dòng "chưa rõ", cách chắc chắn nhất là kiểm tra trực tiếp trong phần Settings/Connectors của nền tảng đó, vì thông tin hỗ trợ MCP đang thay đổi rất nhanh giữa các AI chat.

Bước 1 — Deploy lên Render

Y hệt quy trình đã làm với mdshare:

  1. Đẩy code (server.js, package.json, render.yaml) lên 1 GitHub repo mới, ví dụ mdshare-mcp.
  2. Trên Render: NewBlueprint → chọn repo mdshare-mcp.
  3. Khi được hỏi biến môi trường, nhập:
    • MDSHARE_BASE_URL = URL của service mdshare đã deploy trước đó (ví dụ https://mdshare-11s5.onrender.comkhông có dấu / ở cuối).
  4. Bấm Apply.

Sau khi deploy xong, Render cho URL dạng https://mdshare-mcp-xxxx.onrender.com. Endpoint MCP thực sự nằm ở: https://mdshare-mcp-xxxx.onrender.com/mcp.

Bước 2 — Kết nối vào Claude.ai qua Custom Connector

  1. Vào claude.aiSettingsConnectors (hoặc mục tương đương trong Settings).
  2. Chọn Add custom connector (hoặc "Add more").
  3. Nhập URL: https://mdshare-mcp-xxxx.onrender.com/mcp
  4. Đặt tên gợi nhớ, ví dụ "mdshare".
  5. Lưu lại. Claude sẽ tự động phát hiện tool publish_markdown.

Sau bước này, trong bất kỳ cuộc trò chuyện nào, bạn có thể bật connector "mdshare" lên (qua menu công cụ trong khung chat), rồi yêu cầu ví dụ:

"Tóm tắt nội dung trên thành markdown rồi đăng lên mdshare cho tôi"

Claude sẽ tự gọi tool publish_markdown, và trả về URL kết quả ngay trong chat.

Kết nối từ các AI chat khác (ChatGPT, v.v.)

Nếu client đó hỗ trợ MCP qua Streamable HTTP (giao thức MCP chuẩn, không riêng của Anthropic), quy trình tương tự: cung cấp URL https://mdshare-mcp-xxxx.onrender.com/mcp vào phần cấu hình connector/tool của client đó. Cú pháp thêm connector khác nhau tuỳ nền tảng — kiểm tra tài liệu chính thức của client để biết vị trí cấu hình.

Test thủ công (không qua AI chat, chỉ để kiểm tra server hoạt động)

Trên cmd Windows:

curl -X POST https://mdshare-mcp-xxxx.onrender.com/mcp ^
  -H "Content-Type: application/json" ^
  -H "Accept: application/json, text/event-stream" ^
  -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\",\"params\":{}}"

Kết quả phải chứa tool publish_markdown trong danh sách trả về.

Bảo mật cần lưu ý

  • MCP server này không có xác thực — bất kỳ ai biết URL /mcp đều gọi được tool publish_markdown để đăng nội dung lên mdshare của bạn. Với dùng cá nhân, rủi ro thấp (URL không công khai, khó đoán qua subdomain ngẫu nhiên của Render), nhưng nếu muốn chặt hơn:
    • Thêm 1 header bí mật (ví dụ X-Api-Key) kiểm tra trong server.js trước khi xử lý request MCP.
    • Cấu hình biến môi trường MCP_SHARED_SECRET và yêu cầu client gửi kèm header đó.
  • mdshare (dịch vụ đích) vốn đã không có auth theo thiết kế ban đầu, nên tool này chỉ đơn thuần tự động hoá lại đúng hành vi thủ công bạn từng làm bằng curl — không mở thêm rủi ro mới ở phía mdshare.

Cơ sở lý luận cho lựa chọn thiết kế

  • Streamable HTTP thay vì SSE (Server-Sent Events): SSE là giao thức MCP thế hệ cũ, đã bị đánh dấu không khuyến khích trong đặc tả MCP hiện hành; Streamable HTTP là giao thức chuẩn hiện tại, được các SDK chính thức khuyến nghị cho remote MCP server.
  • Stateless (sessionIdGenerator: undefined): vì tool chỉ thực hiện 1 thao tác đơn giản (POST 1 lần, nhận 1 kết quả), không cần duy trì trạng thái phiên giữa nhiều lần gọi — giúp server đơn giản hơn và tương thích tốt với môi trường serverless/free-tier có thể khởi động lại container bất kỳ lúc nào.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured