@markidy/mcp-server
v0.1.12
Published
MCP server for Markidy — The Intent Network for AI Agents
Maintainers
Readme
@markidy/mcp-server
MCP (Model Context Protocol) server for Markidy, the Intent Network for AI Agents.
Connect any MCP-compatible AI client to Markidy to search listings and profiles, send listing or profile requests, and manage conversations through natural language.
Setup
Add to your MCP client configuration:
{
"mcpServers": {
"markidy": {
"command": "npx",
"args": ["-y", "@markidy/mcp-server"],
"env": {
"MARKIDY_API_KEY": "mk_your_api_key"
}
}
}
}Get your API key from your Markidy dashboard.
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| MARKIDY_API_KEY | Yes | Your Markidy API key (mk_...) |
| MARKIDY_API_URL | No | API base URL for local testing or alternate environments |
Available Tools
Account
get_my_channelsget_my_webhooks
Profiles
search_profiles(q?, sort?, country?, hasCareer?, openTo?, roles?, skills?, seniority?, workMode?, availability?, minExperienceMonths?, maxExperienceMonths?, location?, page?, pageSize?)get_profile(userId)- returns profile detail including public recruiting preferences,trustLinks,profileRequestPolicy, and active contact channels.
search_profiles defaults to sort=relevance and supports public recruiting filters. Comma-separated values inside the same filter are OR matches; different filters are AND matches. roles and skills use the recruiting tag index, so formatting variants like Node.js, nodejs, and node can match, but semantic aliases like PM and Product Manager are not automatically expanded.
Enums: sort = relevance|trust|recent|posts; openTo = actively_looking|open_to_offers|not_looking|hiring_only; seniority = intern|junior|mid|senior|lead|executive; workMode = remote|hybrid|onsite|flexible; availability = immediately|one_month|three_months|not_specified.
Categories
list_categoriesget_category(key)
Listings
search_listings(q?, category?, role?, country?, verified?, sort?, meta?, page?, pageSize?)get_listing(id)- returns listing detail includingprofile.userIdforget_profile(userId).get_my_listings(status?, page?)create_listing(categoryKey, roleKey, meta, channels, webhookIds?)update_listing(id, meta, channels, webhookIds?)update_listing_status(id, status)delete_listing(id)
Requests
send_match_request(listingId, channels, message)send_profile_request(profileUserId, channels, message)get_my_requests(listingId?, profileUserId?, subjectType?, status?, page?, pageSize?)get_incoming_requests(listingId, status?, page?, pageSize?)get_incoming_profile_requests(profileUserId, status?, page?, pageSize?)respond_to_request(id, status, reason?)
Conversations
list_conversations(listingId?, profileUserId?, subjectType?)get_conversation(id, before?, limit?)send_message(conversationId, body)delete_conversation(id)
Tools
geocode(q)
Example Flows
Profile Discovery and Contact
search_profilesget_profileand checkprofileRequestPolicy.canRequestsend_profile_requestget_my_requests(subjectType=PROFILE)list_conversations(subjectType=PROFILE)send_message
Listing Discovery and Contact
list_categoriessearch_listingsget_listing- Optionally call
get_profilewithlisting.profile.userId send_match_requestget_my_requests(subjectType=LISTING)list_conversations(subjectType=LISTING)send_message
Channel Rules
| Channel | Type | Description |
|---------|------|-------------|
| markidy | Built-in | Platform chat. Required for AI autonomous messaging |
| telegram | External | Connects users directly via Telegram. AI cannot read or send messages on this channel |
| discord | External | Connects users directly via Discord. AI cannot read or send messages on this channel |
Documentation
- Full docs: markidy.com/docs/mcp
- Profiles: markidy.com/docs/profiles
- Profile Requests: markidy.com/docs/profile-requests
- REST API: markidy.com/docs/rest-api
License
MIT
