{"serverId":"mcp-registry/io.github.mirajmahmudul/agentdevx","tools":[{"name":"acme-mailer.send_email","fixed":{"name":"acme-mailer_send_email","description":"Send an email to a recipient","inputSchema":{"type":"object","properties":{"to":{"type":"string","description":"Recipient email address"}}},"annotations":{"title":"acme-mailer - send_email","readOnlyHint":false,"idempotentHint":false,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"acme-mailer.send_email\" → \"acme-mailer_send_email\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":53,"tokensAfter":53},{"name":"echo-server.add","fixed":{"name":"echo-server_add","description":"Add two numbers","inputSchema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"number","required":true,"description":"First number"},"b":{"type":"number","required":true,"description":"Second number"}}},"annotations":{"title":"echo-server - add","readOnlyHint":false,"idempotentHint":false,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"echo-server.add\" → \"echo-server_add\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":73,"tokensAfter":73},{"name":"echo-server.echo","fixed":{"name":"echo-server_echo","description":"Returns whatever you send","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","required":true,"description":"Text to echo"}}},"annotations":{"title":"echo-server - echo","readOnlyHint":false,"idempotentHint":false,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"echo-server.echo\" → \"echo-server_echo\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":58,"tokensAfter":58},{"name":"exchange-rate.getLatestRates","fixed":{"name":"exchange-rate_getLatestRates","description":"Get latest exchange rates for a base currency","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"exchange-rate - getLatestRates","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"exchange-rate.getLatestRates\" → \"exchange-rate_getLatestRates\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":46,"tokensAfter":46},{"name":"github-api.getRepo","fixed":{"name":"github-api_getRepo","description":"Get a GitHub repository by owner and name","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"github-api - getRepo","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"github-api.getRepo\" → \"github-api_getRepo\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"github-api.listRepoIssues","fixed":{"name":"github-api_listRepoIssues","description":"List issues for a GitHub repository","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"github-api - listRepoIssues","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"github-api.listRepoIssues\" → \"github-api_listRepoIssues\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"github-api.searchRepos","fixed":{"name":"github-api_searchRepos","description":"Search GitHub repositories","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"github-api - searchRepos","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"github-api.searchRepos\" → \"github-api_searchRepos\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":39,"tokensAfter":39},{"name":"jsonplaceholder.createPost","fixed":{"name":"jsonplaceholder_createPost","description":"Create a new post","inputSchema":{"type":"object","properties":{"body":{"type":"string","description":"Post body"},"title":{"type":"string","description":"Post title"},"userId":{"type":"integer","description":"User ID"}}},"annotations":{"title":"jsonplaceholder - createPost","readOnlyHint":false,"idempotentHint":false,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"jsonplaceholder.createPost\" → \"jsonplaceholder_createPost\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"jsonplaceholder.getPost","fixed":{"name":"jsonplaceholder_getPost","description":"Get a single post by ID","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"jsonplaceholder - getPost","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"jsonplaceholder.getPost\" → \"jsonplaceholder_getPost\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":38,"tokensAfter":38},{"name":"jsonplaceholder.getPosts","fixed":{"name":"jsonplaceholder_getPosts","description":"Get all posts","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"jsonplaceholder - getPosts","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"jsonplaceholder.getPosts\" → \"jsonplaceholder_getPosts\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":36,"tokensAfter":36},{"name":"jsonplaceholder.getUsers","fixed":{"name":"jsonplaceholder_getUsers","description":"Get all users","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"jsonplaceholder - getUsers","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"jsonplaceholder.getUsers\" → \"jsonplaceholder_getUsers\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":36,"tokensAfter":36},{"name":"memory.recall","fixed":{"name":"memory_recall","description":"Retrieve a previously stored value from the agent's encrypted, persistent memory by key.","inputSchema":{"type":"object","required":["key"],"properties":{"key":{"type":"string","description":"Memory key to retrieve"}}},"annotations":{"title":"Memory - Recall","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"memory.recall\" → \"memory_recall\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"memory.store","fixed":{"name":"memory_store","description":"Store a key-value pair in the agent's encrypted, persistent memory. Survives across sessions.","inputSchema":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"Memory key to store under"},"ttl":{"type":"number","description":"Optional time-to-live in seconds"},"value":{"type":"string","description":"Value to store (will be encrypted)"}}},"annotations":{"title":"Memory - Store","readOnlyHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"memory.store\" → \"memory_store\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"open-weather.getCurrentWeather","fixed":{"name":"open-weather_getCurrentWeather","description":"Get current weather for a city","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"open-weather - getCurrentWeather","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"open-weather.getCurrentWeather\" → \"open-weather_getCurrentWeather\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"open-weather.getForecast","fixed":{"name":"open-weather_getForecast","description":"Get 5-day weather forecast for a city","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"open-weather - getForecast","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"open-weather.getForecast\" → \"open-weather_getForecast\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"petstore-api.addPet","fixed":{"name":"petstore-api_addPet","description":"Add a new pet to the store.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - addPet","readOnlyHint":false,"idempotentHint":false,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.addPet\" → \"petstore-api_addPet\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":38,"tokensAfter":38},{"name":"petstore-api.createUser","fixed":{"name":"petstore-api_createUser","description":"Create user.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - createUser","readOnlyHint":false,"idempotentHint":false,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.createUser\" → \"petstore-api_createUser\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":35,"tokensAfter":35},{"name":"petstore-api.createUsersWithListInput","fixed":{"name":"petstore-api_createUsersWithListInput","description":"Creates list of users with given input array.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - createUsersWithListInput","readOnlyHint":false,"idempotentHint":false,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.createUsersWithListInput\" → \"petstore-api_createUsersWithListInput\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":48,"tokensAfter":48},{"name":"petstore-api.deleteOrder","fixed":{"name":"petstore-api_deleteOrder","description":"Delete purchase order by identifier.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - deleteOrder","readOnlyHint":false,"idempotentHint":true,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.deleteOrder\" → \"petstore-api_deleteOrder\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"petstore-api.deletePet","fixed":{"name":"petstore-api_deletePet","description":"Deletes a pet.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - deletePet","readOnlyHint":false,"idempotentHint":true,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.deletePet\" → \"petstore-api_deletePet\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":35,"tokensAfter":35},{"name":"petstore-api.deleteUser","fixed":{"name":"petstore-api_deleteUser","description":"Delete user resource.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - deleteUser","readOnlyHint":false,"idempotentHint":true,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.deleteUser\" → \"petstore-api_deleteUser\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":38,"tokensAfter":38},{"name":"petstore-api.findPetsByStatus","fixed":{"name":"petstore-api_findPetsByStatus","description":"Finds Pets by status.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - findPetsByStatus","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.findPetsByStatus\" → \"petstore-api_findPetsByStatus\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":39,"tokensAfter":39},{"name":"petstore-api.findPetsByTags","fixed":{"name":"petstore-api_findPetsByTags","description":"Finds Pets by tags.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - findPetsByTags","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.findPetsByTags\" → \"petstore-api_findPetsByTags\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":38,"tokensAfter":38},{"name":"petstore-api.getInventory","fixed":{"name":"petstore-api_getInventory","description":"Returns pet inventories by status.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - getInventory","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.getInventory\" → \"petstore-api_getInventory\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"petstore-api.getOrderById","fixed":{"name":"petstore-api_getOrderById","description":"Find purchase order by ID.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - getOrderById","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.getOrderById\" → \"petstore-api_getOrderById\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":40,"tokensAfter":40},{"name":"petstore-api.getPetById","fixed":{"name":"petstore-api_getPetById","description":"Find pet by ID.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - getPetById","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.getPetById\" → \"petstore-api_getPetById\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":36,"tokensAfter":36},{"name":"petstore-api.getUserByName","fixed":{"name":"petstore-api_getUserByName","description":"Get user by user name.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - getUserByName","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.getUserByName\" → \"petstore-api_getUserByName\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":39,"tokensAfter":39},{"name":"petstore-api.loginUser","fixed":{"name":"petstore-api_loginUser","description":"Logs user into the system.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - loginUser","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.loginUser\" → \"petstore-api_loginUser\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":39,"tokensAfter":39},{"name":"petstore-api.logoutUser","fixed":{"name":"petstore-api_logoutUser","description":"Logs out current logged in user session.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - logoutUser","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.logoutUser\" → \"petstore-api_logoutUser\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":43,"tokensAfter":43},{"name":"petstore-api.placeOrder","fixed":{"name":"petstore-api_placeOrder","description":"Place an order for a pet.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - placeOrder","readOnlyHint":false,"idempotentHint":false,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.placeOrder\" → \"petstore-api_placeOrder\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":39,"tokensAfter":39},{"name":"petstore-api.updatePet","fixed":{"name":"petstore-api_updatePet","description":"Update an existing pet.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - updatePet","readOnlyHint":false,"idempotentHint":true,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.updatePet\" → \"petstore-api_updatePet\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":38,"tokensAfter":38},{"name":"petstore-api.updatePetWithForm","fixed":{"name":"petstore-api_updatePetWithForm","description":"Updates a pet in the store with form data.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - updatePetWithForm","readOnlyHint":false,"idempotentHint":false,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.updatePetWithForm\" → \"petstore-api_updatePetWithForm\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":45,"tokensAfter":45},{"name":"petstore-api.updateUser","fixed":{"name":"petstore-api_updateUser","description":"Update user resource.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - updateUser","readOnlyHint":false,"idempotentHint":true,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.updateUser\" → \"petstore-api_updateUser\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":38,"tokensAfter":38},{"name":"petstore-api.uploadFile","fixed":{"name":"petstore-api_uploadFile","description":"Uploads an image.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"petstore-api - uploadFile","readOnlyHint":false,"idempotentHint":false,"destructiveHint":true}},"changes":[{"kind":"name","detail":"Renamed \"petstore-api.uploadFile\" → \"petstore-api_uploadFile\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":37,"tokensAfter":37},{"name":"public-holidays.getAvailableCountries","fixed":{"name":"public-holidays_getAvailableCountries","description":"Get list of available countries","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"public-holidays - getAvailableCountries","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"public-holidays.getAvailableCountries\" → \"public-holidays_getAvailableCountries\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":44,"tokensAfter":44},{"name":"public-holidays.getPublicHolidays","fixed":{"name":"public-holidays_getPublicHolidays","description":"Get public holidays for a country and year","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"title":"public-holidays - getPublicHolidays","readOnlyHint":true,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"public-holidays.getPublicHolidays\" → \"public-holidays_getPublicHolidays\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":46,"tokensAfter":46},{"name":"webscrape.extractDesign","fixed":{"name":"webscrape_extractDesign","description":"Analyze a webpage and extract its design system: colors, fonts, font sizes, spacing values, layout patterns (flexbox/grid usage), and component class name patterns. Uses static HTML fetch (does not render JavaScript).","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL to analyze"}}},"annotations":{"title":"Web Scrape - Design System","readOnlyHint":true,"idempotentHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"webscrape.extractDesign\" → \"webscrape_extractDesign\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"webscrape.scrape","fixed":{"name":"webscrape_scrape","description":"Scrape a webpage and extract its structure: title, headings, links, images, and text content. Uses static HTML fetch (does not render JavaScript).","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL to scrape"}}},"annotations":{"title":"Web Scrape - Page","readOnlyHint":true,"idempotentHint":false,"destructiveHint":false}},"changes":[{"kind":"name","detail":"Renamed \"webscrape.scrape\" → \"webscrape_scrape\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":88,"tokensAfter":88}],"toolsChanged":38,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}