[{"data":1,"prerenderedAt":507},["ShallowReactive",2],{"docs-en-\u002Fdocs\u002Fai":3},{"id":4,"title":5,"body":6,"description":499,"extension":500,"meta":501,"navigation":502,"path":503,"seo":504,"stem":505,"__hash__":506},"docs_en\u002Fdocs\u002Fai\u002Findex.md","AI assistants",{"type":7,"value":8,"toc":490},"minimark",[9,13,22,31,36,156,186,190,197,200,232,236,257,260,271,275,281,335,347,350,435,439,461,467,484,487],[10,11,5],"h1",{"id":12},"ai-assistants",[14,15,16,17,21],"p",{},"Pelyr runs a remote MCP server at ",[18,19,20],"code",{},"https:\u002F\u002Fapi.pelyr.com\u002Fmcp",". Connect it to an\nAI assistant and the assistant can look up vessels, positions and tracks while\nit answers you — with your key, your quota and your rate limits.",[14,23,24,25,30],{},"The server is a read-only view of the ",[26,27,29],"a",{"href":28},"\u002Fen\u002Fdocs\u002Fapi","HTTPS API",": ten tools over\nthe same ten endpoints, and nothing else. There is no write path and no live\nstream.",[32,33,35],"h2",{"id":34},"what-you-get","What you get",[37,38,39,52],"table",{},[40,41,42],"thead",{},[43,44,45,49],"tr",{},[46,47,48],"th",{},"Tool",[46,50,51],{},"What it answers",[53,54,55,66,76,86,96,106,116,126,136,146],"tbody",{},[43,56,57,63],{},[58,59,60],"td",{},[18,61,62],{},"list_sources",[58,64,65],{},"Which sources and licences are behind the data, and the attribution line to show as the licence requires",[43,67,68,73],{},[58,69,70],{},[18,71,72],{},"find_vessels",[58,74,75],{},"Every vessel in a bounding box right now, shortened and capped",[43,77,78,83],{},[58,79,80],{},[18,81,82],{},"get_vessel",[58,84,85],{},"One vessel by MMSI, full field set",[43,87,88,93],{},[58,89,90],{},[18,91,92],{},"get_vessel_track",[58,94,95],{},"The track of one vessel over a time range",[43,97,98,103],{},[58,99,100],{},[18,101,102],{},"vessels_at_time",[58,104,105],{},"Every vessel in a box at one instant from the current UTC day or the two before it; plans from Fleet up",[43,107,108,113],{},[58,109,110],{},[18,111,112],{},"search_vessels",[58,114,115],{},"Vessels by name, IMO or MMSI, ranked — also vessels that are not transmitting right now",[43,117,118,123],{},[58,119,120],{},[18,121,122],{},"list_detection_areas",[58,124,125],{},"The areas of sea that are searched for vessels in satellite images; plans from Fleet up",[43,127,128,133],{},[58,129,130],{},[18,131,132],{},"list_detection_overflights",[58,134,135],{},"The satellite overflights of one area, newest first, with the AIS coverage and the counts of what was found; plans from Fleet up",[43,137,138,143],{},[58,139,140],{},[18,141,142],{},"get_detection_overflight",[58,144,145],{},"One overflight: the vessels detected in the image, their stored AIS facts and the STS pairs; plans from Fleet up",[43,147,148,153],{},[58,149,150],{},[18,151,152],{},"list_sts_finds",[58,154,155],{},"STS finds across the areas, newest first, with reasons and AIS partners — filtered and paged; plans from Fleet up",[14,157,158,159,162,163,166,167,170,171,174,175,178,179,178,182,185],{},"Three resources come with them: ",[18,160,161],{},"pelyr:\u002F\u002Flicence"," (licence and attribution),\n",[18,164,165],{},"pelyr:\u002F\u002Flimits"," (the current limits), and ",[18,168,169],{},"pelyr:\u002F\u002Ffields"," (what ",[18,172,173],{},"nav_status",",\n",[18,176,177],{},"type",", ",[18,180,181],{},"plausibility",[18,183,184],{},"match"," and the other coded fields mean). An assistant can read\nthem without spending a request.",[32,187,189],{"id":188},"before-you-connect","Before you connect",[14,191,192,196],{},[193,194,195],"strong",{},"Create your Pelyr account first."," Signing in during a connector flow works\nfor an account that already exists, and so does a first sign-in through\nGitHub — either way you land back at the assistant. Registering with an email\naddress instead takes you into the portal, not back to the assistant; if that\nhappens, the parked request expires after fifteen minutes — start the\nconnection again from the assistant.",[14,198,199],{},"Then pick your route:",[201,202,203,211,218,225],"ul",{},[204,205,206,210],"li",{},[26,207,209],{"href":208},"\u002Fen\u002Fdocs\u002Fai\u002Fclaude","Claude"," — Claude.ai, Claude Desktop, Claude Code",[204,212,213,217],{},[26,214,216],{"href":215},"\u002Fen\u002Fdocs\u002Fai\u002Fchatgpt","ChatGPT"," — developer mode connector",[204,219,220,224],{},[26,221,223],{"href":222},"\u002Fen\u002Fdocs\u002Fai\u002Fdeveloper-tools","Developer tools"," — Cursor, VS Code, Gemini CLI, Windsurf",[204,226,227,231],{},[26,228,230],{"href":229},"\u002Fen\u002Fdocs\u002Fai\u002Fapi","Your own agents"," — Claude API, managed agents, OpenAI Responses",[32,233,235],{"id":234},"one-key-per-client","One key per client",[14,237,238,239,242,243,245,246,174,249,252,253,256],{},"Claude.ai and ChatGPT sign in over OAuth: you approve the connection once on a\nPelyr page, and Pelyr mints ",[193,240,241],{},"one key for that client",". It appears in your key\nlist under ",[193,244,5],{},", labelled with the client's host — ",[18,247,248],{},"claude.ai",[18,250,251],{},"chatgpt.com"," — and carries the ",[18,254,255],{},"https"," capability. It does not count toward\nyour key limit.",[14,258,259],{},"Revoke it there and the connector is cut off at once: its next tool call that\nreads vessel data is refused, and the assistant will offer to sign in again. Approving again mints a fresh key. There is no separate\n\"connected apps\" screen: the key list is the list.",[14,261,262,263,266,267,270],{},"Developer tools and your own code skip all of that and send a ",[18,264,265],{},"pk_"," key you\ncreated yourself in the ",[18,268,269],{},"Authorization"," header. Same key, same budgets as the\nHTTPS API.",[32,272,274],{"id":273},"limits","Limits",[14,276,277,278,280],{},"Rate limits are counted per key in a sliding 60-second window — the same three\nindependent budgets as on the HTTPS API. Exhausting one does not affect the\nothers, and everything else that uses the same key counts into the same\nwindows: your own HTTPS calls and the assistant's tool calls share them. A\nconnector and a ",[18,279,265],{}," key you use yourself never share a budget — each has its\nown key.",[37,282,283,293],{},[40,284,285],{},[43,286,287,290],{},[46,288,289],{},"Tools",[46,291,292],{},"Limit",[53,294,295,318,326],{},[43,296,297,315],{},[58,298,299,178,301,178,303,178,305,178,307,178,309,178,311,178,313],{},[18,300,72],{},[18,302,82],{},[18,304,102],{},[18,306,112],{},[18,308,122],{},[18,310,132],{},[18,312,142],{},[18,314,152],{},[58,316,317],{},"the per-minute limit of your plan; Free plan: 2 per minute per API key",[43,319,320,324],{},[58,321,322],{},[18,323,92],{},[58,325,317],{},[43,327,328,332],{},[58,329,330],{},[18,331,62],{},[58,333,334],{},"1 request \u002F minute",[14,336,337,338,341,342,346],{},"An agent asks several questions per turn, so these are tighter here than they\nlook on the HTTPS API. Over the limit, the tool answers with ",[18,339,340],{},"rate_limited"," and\nthe number of seconds to wait — the connection stays up, the assistant can try\nagain. If your workload needs a higher limit, write to ",[26,343,345],{"href":344},"mailto:hello@pelyr.com","hello@pelyr.com",".",[14,348,349],{},"Answer sizes are capped so that a result still fits into a model's context:",[201,351,352,364,372,382,390,418],{},[204,353,354,356,357,359,360,363],{},[18,355,72],{}," and ",[18,358,102],{}," return 100 vessels by default and 500 at\nmost (",[18,361,362],{},"max","). A box with more vessels in it comes back flagged, not silently\nshortened.",[204,365,366,368,369,346],{},[18,367,92],{}," returns at most 500 points; a longer track is thinned out\nevenly and flagged with ",[18,370,371],{},"downsampled",[204,373,374,356,376,378,379,381],{},[18,375,72],{},[18,377,102],{}," return a shortened field set. The full\none — draught, ETA, dimensions, plausibility — is what ",[18,380,82],{}," is for.",[204,383,384,386,387,389],{},[18,385,112],{}," returns 10 candidates by default and 25 at most (",[18,388,362],{},").\nA name without an exact match returns the closest names, marked as\napproximate — candidates to check, not an identification.",[204,391,392,394,395,397,398,400,401,403,404,407,408,410,411,356,414,417],{},[18,393,132],{}," returns 100 overflights by default and 500 at\nmost (",[18,396,362],{},"). ",[18,399,142],{}," returns 100 detections by default\nand 500 at most (",[18,402,362],{},"), but keeps every detection of an STS pair, so ",[18,405,406],{},"count","\ncan exceed ",[18,409,362],{},"; ",[18,412,413],{},"truncated_by_max",[18,415,416],{},"total_detections"," say what was left\nout.",[204,419,420,422,423,426,427,430,431,434],{},[18,421,152],{}," returns pages of 50 finds by default and 200 at most\n(",[18,424,425],{},"limit","); page on with ",[18,428,429],{},"cursor"," until ",[18,432,433],{},"next_cursor"," is null.",[32,436,438],{"id":437},"licence-and-attribution","Licence and attribution",[14,440,441,442,178,444,174,446,178,448,178,450,178,452,174,454,456,457,460],{},"Every answer that carries vessel data — ",[18,443,72],{},[18,445,82],{},[18,447,92],{},[18,449,102],{},[18,451,112],{},[18,453,142],{},[18,455,152],{}," — carries its own ",[18,458,459],{},"attribution"," block for\nthe licences it used, and the line",[462,463,464],"blockquote",{},[14,465,466],{},"AIS data is not for navigation or safety of life at sea.",[14,468,469,471,472,475,476,356,478,480,481,483],{},[18,470,62],{}," carries the same notice, and puts the attribution on each entry\nof its ",[18,473,474],{},"sources"," list instead of a single block, one entry per licence.\n",[18,477,122],{},[18,479,132],{}," carry the notice too,\nbut no AIS vessel facts, so their ",[18,482,459],{}," is empty.",[14,485,486],{},"The attribution is not decoration. Third-party sources always require their\ncredit wherever the data is shown; the Pelyr Data Licence 2.0 requires the Pelyr\ncredit for data that may be used for non-commercial purposes only (section 3.1\nof the licence). An answer an assistant writes from the data is such a place.\nThe tool descriptions ask the model for it; a model is not a guarantee, so if\nyour assistant keeps dropping the line, put it in your system prompt.",[14,488,489],{},"Vessel positions are reported by the vessels themselves and are not verified.\nThey are not a navigational aid, and an AI summary of them is even less of one.",{"title":491,"searchDepth":492,"depth":492,"links":493},"",2,[494,495,496,497,498],{"id":34,"depth":492,"text":35},{"id":188,"depth":492,"text":189},{"id":234,"depth":492,"text":235},{"id":273,"depth":492,"text":274},{"id":437,"depth":492,"text":438},"Read Pelyr AIS data from Claude, ChatGPT and your own agents through the Pelyr MCP server.","md",{},true,"\u002Fdocs\u002Fai",{"title":5,"description":499},"docs\u002Fai\u002Findex","BXk3yfzNZWUMsnhAaJEFNF5SX6IGc-JuZ7mOrYc7rac",1793034560947]