Pinsvit

Small local businesses take bookings: find and book a place, run your own front desk, post nearby.

Should I use this

Quality & Safety

A
Description quality
89%
Schema completeness
81%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'get_current_user_details' description lacks action verbin get_current_user_details
  • LOWTool 'get_post' description lacks action verbin get_post

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,487Tokens (tool definitions)
~1018 BTypical response size
Moderate attention impact (1.16% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "api": {
      "url": "https://pinsvit.com/api/v1/mcp"
    }
  }
}

Remote endpoints

https://pinsvit.com/api/v1/mcpstreamable-http
https://pinsvit.com/api/v1/mcp/ssesse

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡create_comment(postId, postGeoHash, message, medias)

Creates a new comment on a post.

Input Schema

{
  "type": "object",
  "properties": {
    "postId": {
      "type": "string",
      "description": "The ID of the post to comment on."
    },
    "postGeoHash": {
      "type": "string",
      "description": "The GeoHash of the post (found in Post search results)."
    },
    "message": {
      "type": "string",
      "description": "The text of the comment."
    },
    "medias": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of completed media keys to attach images."
    }
  },
  "required": [
    "postId",
    "postGeoHash",
    "message"
  ]
}
🟡create_event(latitude, longitude, startAt, endAt, message, ...)

Creates a new event at a specific location. To include picture call requestMediaUpload to upload media file first. Start and end times are required ISO-8601 instants, for example 2026-05-30T10:00:00Z. Returns true if event successfully created.

Input Schema

{
  "type": "object",
  "properties": {
    "latitude": {
      "type": "number",
      "description": "Latitude of the event location, between -90 and 90. Example: 48.8566."
    },
    "longitude": {
      "type": "number",
      "description": "Longitude of the event location, between -180 and 180. Example: 2.3522."
    },
    "startAt": {
      "type": "string",
      "description": "Event start time as an ISO-8601 instant. Example: 2026-05-30T10:00:00Z."
    },
    "endAt": {
      "type": "string",
      "description": "Event end time as an ISO-8601 instant. Example: 2026-05-30T12:00:00Z."
    },
    "message": {
      "type": "string",
      "description": "The text message of the event."
    },
    "medias": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of completed media storage keys to attach."
    }
  },
  "required": [
    "latitude",
    "longitude",
    "startAt",
    "endAt"
  ]
}
🟡create_post(latitude, longitude, message, medias)

Creates a new post at a specific location. To attach images, you must first obtain media keys. You have two options: 1. If you need to generate an upload link for an external system, call `get_publishing_media_keys`. 2. If you already have the file locally, use your environment's local upload tool to hit the direct POST /agent/media endpoint. Returns true if successfully created.

Input Schema

{
  "type": "object",
  "properties": {
    "latitude": {
      "type": "number",
      "description": "Latitude of the post location, between -90 and 90. Example: 48.8566."
    },
    "longitude": {
      "type": "number",
      "description": "Longitude of the post location, between -180 and 180. Example: 2.3522."
    },
    "message": {
      "type": "string",
      "description": "The text message of the post."
    },
    "medias": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of completed media keys to attach images."
    }
  },
  "required": [
    "latitude",
    "longitude"
  ]
}
🟢get_comments(postId)

Returns compact list of comments for a post.

Input Schema

{
  "type": "object",
  "properties": {
    "postId": {
      "type": "string",
      "description": "The ID of the post."
    }
  },
  "required": [
    "postId"
  ]
}
🟢get_current_country_code

Returns country code based on users location

Input Schema

{
  "type": "object",
  "properties": {},
  "required": []
}
🟢get_current_user_details

Returns current user profile details

Input Schema

{
  "type": "object",
  "properties": {},
  "required": []
}
🟡get_post(geoHash, postId)

Returns full details for a specific post.

Input Schema

{
  "type": "object",
  "properties": {
    "geoHash": {
      "type": "string",
      "description": "The GeoHash of the post."
    },
    "postId": {
      "type": "string",
      "description": "The ID of the post."
    }
  },
  "required": [
    "geoHash",
    "postId"
  ]
}
🟡get_publishing_media_keys(urls)

Downloads images from public URLs and returns media keys that can be attached to create_post and create_event. Use this before create_post when the user provides image URLs. Pass the returned media keys to create_post in the medias list.

Input Schema

{
  "type": "object",
  "properties": {
    "urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Public image URLs to download and attach to a post. Maximum 7 URLs."
    }
  },
  "required": [
    "urls"
  ]
}
⚪ping

Returns a pong message to verify MCP connection.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": []
}
🟢search_events_near(centerLat, centerLng, radiusKm, includeHashTags, hashTagMode, ...)

Searches for events near a center point. Provide the center latitude/longitude and optionally a radius in kilometers. The radius controls how large an area around the center should be searched. If radiusKm is omitted, a reasonable default is used. Can also filter by event start date range using ISO-8601 dates, e.g. 2026-05-30. Returns compact event results optimized for AI-agent use.

Input Schema

{
  "type": "object",
  "properties": {
    "centerLat": {
      "type": "number",
      "description": "Latitude of the center point."
    },
    "centerLng": {
      "type": "number",
      "description": "Longitude of the center point."
    },
    "radiusKm": {
      "type": "number",
      "description": "Search radius in kilometers around the center point. Defaults to 5 km. Maximum 50 km."
    },
    "includeHashTags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Set of hashtags to include in the search."
    },
    "hashTagMode": {
      "type": "string",
      "description": "Mode for multiple hashtags: 'AND' or 'OR' (default 'OR')."
    },
    "startDateFrom": {
      "type": "string",
      "description": "Filter events starting from this date, inclusive. ISO-8601 format, e.g. 2026-05-30."
    },
    "startDateTo": {
      "type": "string",
      "description": "Filter events starting until this date, inclusive. ISO-8601 format, e.g. 2026-06-30."
    }
  },
  "required": [
    "centerLat",
    "centerLng"
  ]
}
🟢search_posts_near(centerLat, centerLng, radiusKm, includeHashTags, hashTagMode)

Searches for posts near a center point. Provide the center latitude/longitude and optionally a radius in kilometers. The radius controls how large an area around the center should be searched. If radiusKm is omitted, a reasonable default is used.

Input Schema

{
  "type": "object",
  "properties": {
    "centerLat": {
      "type": "number",
      "description": "Latitude of the center point."
    },
    "centerLng": {
      "type": "number",
      "description": "Longitude of the center point."
    },
    "radiusKm": {
      "type": "number",
      "description": "Search radius in kilometers around the center point. Defaults to 5 km. Maximum 50 km."
    },
    "includeHashTags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Set of hashtags to include in the search."
    },
    "hashTagMode": {
      "type": "string",
      "description": "Mode for multiple hashtags: 'AND' or 'OR' (default 'OR')."
    }
  },
  "required": [
    "centerLat",
    "centerLng"
  ]
}

Recommended Prompts

search_research
Search for information about [topic] using Pinsvit
Expected tools: search_events_near
search_then_create
Search for [item] and create a new [related item] using Pinsvit
Expected tools: search_events_nearcreate_comment
find_specific
Find [specific item] using Pinsvit
Expected tools: search_events_near
retrieve_data
Get details about [item] from Pinsvit
Expected tools: get_comments
fetch_info
Fetch [information type] using Pinsvit
Expected tools: get_comments

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools
verifiedversion not recorded11 tools