URL Manager MCP Server — Agent-first web link collection & knowledge management
Project description
URL Manager MCP Server
A Model Context Protocol server for managing web bookmarks — cross-device sync, categories, tags, full-text search, batch operations, and team sharing. 20 tools with auto-registration so no manual setup is required.
📖 Usage patterns and best practices → URL Manager Skill
Tools
Registration & Identity
-
agent_register()Create a new account. No parameters. Token is auto-applied for all subsequent calls. ⚠️ Call once only — each invocation creates a fresh account. -
my_info()Verify connection and token validity. Returns username and membership status.
Bookmarks
-
search_footprints(query, limit, offset)Full-text search across titles, descriptions, and URLs.query(required) — Search keywordslimit— Results per page (default 10, max 100)offset— Pagination offset (default 0)
-
list_footprints(category_id, limit, offset)List bookmarks by category.category_id=0returns all.limit— Results per page (default 20, max 100)offset— Pagination offset (default 0)
-
get_footprint(footprint_id)Get full details of a single bookmark.footprint_id(required) — Fromlist_footprintsorsearch_footprintsresults (fieldid)
-
add_footprint(url, title, description, category_ids, tag_names)Add a new bookmark. Calllist_categories()andlist_tags()first to discover existing structure.url(required) — Web page URLtitle— Leave empty to auto-extract from the pagedescription— Summary or notescategory_ids— Comma-separated IDs, e.g."1,3"tag_names— Comma-separated names, e.g."AI,tutorial"
-
update_footprint(footprint_id, title, description, category_ids, tag_names)Update a bookmark. Omitted fields stay unchanged. ⚠️category_idsreplaces the entire list — not append. Callget_footprint()first, then merge IDs.footprint_id(required) — From search or list results
Categories & Tags
-
list_categories()List all categories (personal + shared). Returnsid,name, andmodefields.mode=null→ personal;mode="cocreate"/"subscribe"→ shared. -
create_category(name, category_set_id)Create a new category. Checklist_categories()first to avoid duplicates.name(required) — Category namecategory_set_id— Parent category set (0 = default)
-
list_tags()List all tags used by this account.
Category Sets
-
list_category_sets()List all category sets. -
create_category_set(name)Create a new category set (a container of categories).name(required) — Category set name
Shared Categories
-
create_shared_category(name, mode, description)Create a shared category for team collaboration.name(required)mode(required) —"cocreate"(multiple editors) or"subscribe"(read-only)description— Optional description ⚠️ Insubscribemode, adding bookmarks returns 403. Use"cocreate"for editable collaboration.
-
create_invite_link(shared_category_id, duration_hours)Generate an invite link for others to join.shared_category_id(required) — Fromlist_categories()(shared entries)duration_hours— Default 24
-
join_shared_category(invite_code)Join a shared category by invite code.invite_code(required) — 8-character code from the invite link
-
add_to_shared_category(shared_category_id, footprint_id)Add one of your own bookmarks to a shared category.- Both parameters required
-
remove_from_shared_category(shared_category_id, footprint_id)Remove a bookmark from a shared category. Does not delete the bookmark itself.- Both parameters required
-
copy_footprint(footprint_id, category_ids)Copy a bookmark from a shared category into your personal collection.- Both parameters required
Batch & Delivery
-
batch_update_footprints(updates)Bulk edit up to 50 bookmarks at once.updates(required) — JSON string:[{"id":"...", "title":"New Title", "category_ids":"1,3"}, ...]Each object may containtitle,description,category_ids,tag_names;idis required.
-
agent_magic_link()Generate a delivery link. Send to the user — they open it to see a card-based interface with all their organized bookmarks. Valid for 30 days, reusable.
Installation
git clone https://github.com/Piccolo123/url-manager-mcp.git
cd url-manager-mcp
pip install -r requirements.txt
Prerequisites
- Python 3.10+
- Network access to
https://ai.ocean94.com
Configuration
Claude Desktop / Claude Code
{
"mcpServers": {
"url-manager": {
"command": "python",
"args": ["path/to/url-manager-mcp/server.py"]
}
}
}
If the user has an existing account:
{
"mcpServers": {
"url-manager": {
"command": "python",
"args": ["path/to/url-manager-mcp/server.py"],
"env": {
"FOOTPRINTS_TOKEN": "FA_xxxxxxxxxxxx"
}
}
}
}
Cursor / Windsurf / Cherry Studio
Same JSON structure as above. Works with any MCP-compatible client supporting STDIO transport.
Other Clients
This server supports both STDIO (default) and Streamable HTTP transports:
# STDIO (default)
python server.py
# Streamable HTTP (for Docker / Glama / hosted environments)
python server.py --http
Deployment
Docker
docker build -t url-manager-mcp .
docker run -e FOOTPRINTS_TOKEN="FA_xxx" url-manager-mcp
ModelScope
One-click hosted deployment: url-manager-mcp
Why URL Manager
Browser bookmarks are flat lists with no organization, no search, and no sharing. URL Manager adds:
- Categories, category sets, and tags — Hierarchical organization
- Full-text search — Find anything across all titles, descriptions, and URLs
- Cross-device sync — Save on one device, access on all
- Batch management — Sort and organize hundreds of links at once
- Team sharing — Co-editing and read-only shared collections with invite links
- Card-based delivery — Send organized collections as a polished interface, not raw URLs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file url_manager_mcp-1.0.0.tar.gz.
File metadata
- Download URL: url_manager_mcp-1.0.0.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e7321c17f52f35b82512c04c3e31890443396b67f669b18350a21514e7fb6f8
|
|
| MD5 |
c4c1a0783517fd9ca7d02e25b097768f
|
|
| BLAKE2b-256 |
523307f30f34c8d919491a501f1e031d36705f5d1ebf13df75769f973a629425
|
File details
Details for the file url_manager_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: url_manager_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5600a891b7e2996cab707be34470b4910fdbb2faa22fc660b434a1374ab114ff
|
|
| MD5 |
cae834111c2fec7ce4072b0f2d7638ec
|
|
| BLAKE2b-256 |
b6240ba9be9c032b8c868655c3823264b113a8ce4329b59becdccf2220b883c7
|