{"name":"com.md-log/md-log-mcp","slug":"md-log-mcp","title":null,"description":"md-log MCP: save/update/fetch markdown by path (stdio + remote HTTP, PAT auth).","url":"https://mcp.market/server/md-log-mcp","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"security","tags":["security"],"presence":{"score":29,"stars":3,"forks":0,"downloads_week":46,"last_push_at":"2026-09-03T06:12:12.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/md-log/md-log-mcp","website":null,"version":"1.1.4","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"md-log-mcp","version":"1.1.4","transport":{"type":"stdio"},"environmentVariables":[{"description":"md-log backend API base URL (must include /api/v1)","isRequired":true,"default":"https://app.md-log.com/api/v1","name":"MDLOG_API_BASE_URL"},{"description":"md-log Personal Access Token (mdlog_pat_...)","isRequired":true,"format":"string","isSecret":true,"name":"MDLOG_PAT"}]}],"tools":[{"name":"append_to_markdown","description":"Append content to the end of an existing .md file using optimistic concurrency (GET current -> concat -> PUT with base_version_no). Auto-retries once on conflict, then surfaces CONFLICT.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_folder","description":"Create a folder path, creating every missing parent segment (mkdir -p). Already-existing folders are treated as success.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_folder","description":"Delete a folder. Requires confirm:true (otherwise VALIDATION). By default only an EMPTY folder is deleted (a non-empty one is refused); pass cascade:true to soft-delete the whole subtree \\u2014 every subfolder and document under it (like `rm -r`). Documents are soft-deleted (recoverable), but prefer move_folder/move_markdown when reorganizing.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_markdown","description":"Soft-delete a .md file. Requires confirm:true (otherwise VALIDATION). Resolves the path to a document key, then DELETE /documents/{key}.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_markdown","description":"Read a .md file's content by path. Pass `version` (a version_no from list_versions) to read an OLD immutable version instead of the current one.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_files","description":"List the documents (and immediate subfolders) inside a folder path. Omit path (or pass '' / '/') to list the ROOT folder.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_folders","description":"Return the full folder tree.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_versions","description":"List a .md file's immutable version history, newest first (version_no, commit_message, author, registered_at, size). Read an old version's content with get_markdown + `version`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"move_folder","description":"Move a folder (with its whole subtree: documents, versions, annotations) under a new parent. new_parent_path '' or omitted = move to the root. Parent folders are auto-created. Moving a folder into its own subtree is rejected by the server.","write_action":false,"price_micros":0,"input_schema":null},{"name":"move_markdown","description":"Move and/or rename a .md file: from_path -> to_path. Destination folders are auto-created (mkdir -p). The document KEEPS its identity (same document key), so its whole version history and reviewers' annotations survive the move \\u2014 never re-save + delete to relocate a file. Fails if a different file already occupies to_path.","write_action":false,"price_micros":0,"input_schema":null},{"name":"rename_folder","description":"Rename a folder in place (descendant paths are rewritten automatically; documents, versions and annotations are untouched).","write_action":false,"price_micros":0,"input_schema":null},{"name":"save_markdown","description":"Save (create or overwrite) a .md file in md-log by path; missing folders are auto-created. Optionally upload embedded images as assets first and rewrite their refs to asset:// links. This is a force-write (last-writer-wins) \\u2014 the headline agent tool. Before choosing a path, PREFER an existing folder that already holds related documents and reuse its exact spelling \\u2014 do not invent a new c","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_markdown","description":"Search documents by TITLE (substring) and BODY (full-text over current versions; whole-word match, ranked, body hits carry a **bolded** snippet). Use it to find a prior report by its content or name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_markdown","description":"Replace the content of an existing .md file. Pass expected_version for optimistic concurrency (mismatch -> CONFLICT); omit it to force last-writer-wins.","write_action":true,"price_micros":0,"input_schema":null},{"name":"upload_asset","description":"Upload a single image as an asset (reserve -> presigned PUT -> complete) and return an 'asset://<key>' reference you can embed in markdown image syntax: ![alt](asset://<key>). Provide the image as EITHER `data_base64` (inline base64) OR `file_path` (a local file to read) \\u2014 exactly one.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-24T21:40:49.937Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T21:40:49.878Z","components":{"code":{"score":25,"max":25,"notes":["3 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 22 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"md-log-mcp","version":"1.1.4","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-07-27T07:07:27.298Z","repositoryUrl":"git+https://github.com/md-log/md-log-mcp.git","weeklyDownloads":46}],"repo":{"found":true,"owner":"md-log","repo":"md-log-mcp","archived":false,"pushedAt":"2026-09-03T06:12:12Z","stars":3,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/304855934?v=4","ownerCreatedAt":"2026-07-14T09:56:59Z","license":"MIT"},"icon":{"url":"https://md-log.com/brand/md-log-favicon.svg","source":"site"},"presence":{"stars":3,"forks":0,"downloadsWeek":46,"license":"MIT","lastPushAt":"2026-09-03T06:12:12.000Z","score":29}}}},"grade_history":[],"reviews":[]}