We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sonichi/asana'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
mcp_config_webhook_management.json•3.04 kB
{
"server": {
"url": "https://app.asana.com/api/1.0"
},
"authentication": [
{
"schema_parameters": {
"scheme": "bearer"
},
"type": "http",
"value": "BEARER_TOKEN"
}
],
"operations": [
{
"description": "Get the compact representation of all webhooks your app has registered for the authenticated user in the given workspace.",
"name": "get_webhooks"
},
{
"description": "Establishing a webhook is a two-part process. First, a simple HTTP POST request initiates the creation similar to creating any other resource. Next, in the middle of this request comes the confirmation handshake. When a webhook is created, we will send a test POST to the target with an `X-Hook-Secret` header. The target must respond with a `200 OK` or `204 No Content` and a matching `X-Hook-Secret` header to confirm that this webhook subscription is indeed expected. We strongly recommend storing this secret to be used to verify future webhook event signatures. The POST request to create the webhook will then return with the status of the request. If you do not acknowledge the webhook\u2019s confirmation handshake it will fail to setup, and you will receive an error in response to your attempt to create it. This means you need to be able to receive and complete the webhook *while* the POST request is in-flight (in other words, have a server that can handle requests asynchronously). Invalid hostnames like localhost will recieve a 403 Forbidden status code. ``` # Request curl -H \"Authorization: Bearer \u003cpersonal_access_token\u003e\" -X POST https://app.asana.com/api/1.0/webhooks -d \"resource=8675309\" -d \"target=https://example.com/receive-webhook/7654\" ``` ``` # Handshake sent to https://example.com/ POST /receive-webhook/7654 X-Hook-Secret: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 ``` ``` # Handshake response sent by example.com HTTP/1.1 200 X-Hook-Secret: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 ``` ``` # Response HTTP/1.1 201 { \"data\": { \"gid\": \"43214\", \"resource\": { \"gid\": \"8675309\", \"name\": \"Bugs\" }, \"target\": \"https://example.com/receive-webhook/7654\", \"active\": false, \"last_success_at\": null, \"last_failure_at\": null, \"last_failure_content\": null } } ```",
"name": "create_webhook"
},
{
"description": "This method *permanently* removes a webhook. Note that it may be possible to receive a request that was already in flight after deleting the webhook, but no further requests will be issued.",
"name": "delete_webhook"
},
{
"description": "Returns the full record for the given webhook.",
"name": "get_webhook"
},
{
"description": "An existing webhook\u0027s filters can be updated by making a PUT request on the URL for that webhook. Note that the webhook\u0027s previous `filters` array will be completely overwritten by the `filters` sent in the PUT request.",
"name": "update_webhook"
}
]
}