{"id":"6f0de943-88cd-4081-a15e-771363f6258d","shortId":"85AaXZ","kind":"skill","title":"create-connector","tagline":"Generate Harness Connector YAML for integrations and create/test via MCP. Use when user says \"create connector\", \"git connector\", \"aws connector\", \"docker connector\", \"cloud connector\", or wants to connect Harness to external services.","description":"# Create Connector\n\nGenerate Harness Connector YAML and create/test via MCP.\n\n## Instructions\n\n1. **Identify connector type** - Determine what service to connect (Git provider, cloud provider, container registry, Kubernetes cluster)\n2. **Generate YAML** using the templates below, filling in credentials and endpoint details\n3. **Create via MCP** using `harness_create` with resource_type `connector`\n4. **Test connection** using `harness_execute` with action `test_connection` to verify\n\n## Git Connectors\n\n### GitHub\n```yaml\nconnector:\n  name: GitHub\n  identifier: github_connector\n  type: Github\n  spec:\n    url: https://github.com/myorg\n    type: Account                    # Account or Repo\n    authentication:\n      type: Http\n      spec:\n        type: UsernameToken\n        spec:\n          username: myuser\n          tokenRef: github_pat       # Secret reference\n    apiAccess:\n      type: Token\n      spec:\n        tokenRef: github_pat\n    executeOnDelegate: false\n```\n\n### GitLab\n```yaml\nconnector:\n  name: GitLab\n  identifier: gitlab_connector\n  type: Gitlab\n  spec:\n    url: https://gitlab.com/myorg\n    type: Account\n    authentication:\n      type: Http\n      spec:\n        type: UsernameToken\n        spec:\n          username: myuser\n          tokenRef: gitlab_token\n```\n\n### Bitbucket\n```yaml\nconnector:\n  name: Bitbucket\n  identifier: bitbucket_connector\n  type: Bitbucket\n  spec:\n    url: https://bitbucket.org/myorg\n    type: Account\n    authentication:\n      type: Http\n      spec:\n        type: UsernameToken\n        spec:\n          username: myuser\n          tokenRef: bitbucket_app_password\n```\n\n## Cloud Connectors\n\n### AWS\n```yaml\nconnector:\n  name: AWS\n  identifier: aws_connector\n  type: Aws\n  spec:\n    credential:\n      type: ManualConfig          # ManualConfig, InheritFromDelegate, Irsa, OidcAuthentication\n      spec:\n        accessKeyRef: aws_access_key\n        secretKeyRef: aws_secret_key\n    delegateSelectors: []         # Optional: target specific delegates\n    executeOnDelegate: false\n```\n\n### GCP\n```yaml\nconnector:\n  name: GCP\n  identifier: gcp_connector\n  type: Gcp\n  spec:\n    credential:\n      type: ManualConfig          # ManualConfig, InheritFromDelegate, OidcAuthentication\n      spec:\n        secretKeyRef: gcp_service_account_key\n    executeOnDelegate: false\n```\n\n### Azure\n```yaml\nconnector:\n  name: Azure\n  identifier: azure_connector\n  type: Azure\n  spec:\n    credential:\n      type: ManualConfig\n      spec:\n        auth:\n          type: Secret\n          spec:\n            secretRef: azure_client_secret\n        applicationId: <app_id>\n        tenantId: <tenant_id>\n    azureEnvironmentType: AZURE     # AZURE, AZURE_US_GOVERNMENT\n    executeOnDelegate: false\n```\n\n## Registry Connectors\n\n### Docker Hub\n```yaml\nconnector:\n  name: Docker Hub\n  identifier: dockerhub\n  type: DockerRegistry\n  spec:\n    dockerRegistryUrl: https://index.docker.io/v2/\n    providerType: DockerHub\n    auth:\n      type: UsernamePassword\n      spec:\n        username: myuser\n        passwordRef: dockerhub_password\n```\n\n### AWS ECR\n```yaml\nconnector:\n  name: ECR\n  identifier: ecr_connector\n  type: Aws\n  spec:\n    credential:\n      type: ManualConfig\n      spec:\n        accessKeyRef: aws_access_key\n        secretKeyRef: aws_secret_key\n```\n\n## Kubernetes Connector\n\n```yaml\nconnector:\n  name: K8s Cluster\n  identifier: k8s_connector\n  type: K8sCluster\n  spec:\n    credential:\n      type: ManualConfig          # ManualConfig, InheritFromDelegate\n      spec:\n        masterUrl: https://k8s-api.example.com\n        auth:\n          type: ServiceAccount\n          spec:\n            serviceAccountTokenRef: k8s_sa_token\n            caCertRef: k8s_ca_cert\n```\n\n## Helm Repository Connector\n\n### HTTP Helm Repo\n```yaml\nconnector:\n  name: Helm Repo\n  identifier: helm_repo\n  type: HttpHelmRepo\n  spec:\n    helmRepoUrl: https://charts.example.com\n    auth:\n      type: UsernamePassword      # UsernamePassword or Anonymous\n      spec:\n        username: myuser\n        passwordRef: helm_password\n    delegateSelectors: []\n```\n\n### OCI Helm Repo\n```yaml\nconnector:\n  name: OCI Helm\n  identifier: oci_helm\n  type: OciHelmRepo\n  spec:\n    helmRepoUrl: oci://registry.example.com/charts\n    auth:\n      type: UsernamePassword\n      spec:\n        username: myuser\n        passwordRef: oci_password\n```\n\n## Artifact Repository Connectors\n\n### Nexus\n```yaml\nconnector:\n  name: Nexus\n  identifier: nexus_connector\n  type: Nexus\n  spec:\n    nexusServerUrl: https://nexus.example.com\n    version: \"3.x\"               # \"2.x\" or \"3.x\"\n    auth:\n      type: UsernamePassword\n      spec:\n        username: admin\n        passwordRef: nexus_password\n```\n\n### Artifactory\n```yaml\nconnector:\n  name: Artifactory\n  identifier: artifactory_connector\n  type: Artifactory\n  spec:\n    artifactoryServerUrl: https://artifactory.example.com\n    auth:\n      type: UsernamePassword\n      spec:\n        username: admin\n        passwordRef: artifactory_password\n```\n\n## Ticketing Connectors\n\n### Jira\n```yaml\nconnector:\n  name: Jira\n  identifier: jira_connector\n  type: Jira\n  spec:\n    jiraUrl: https://mycompany.atlassian.net\n    auth:\n      type: UsernamePassword\n      spec:\n        username: user@company.com\n        passwordRef: jira_api_token\n```\n\n### ServiceNow\n```yaml\nconnector:\n  name: ServiceNow\n  identifier: servicenow_connector\n  type: ServiceNow\n  spec:\n    serviceNowUrl: https://mycompany.service-now.com\n    auth:\n      type: UsernamePassword\n      spec:\n        username: admin\n        usernameRef: snow_username\n        passwordRef: snow_password\n```\n\n## Creating and Testing via MCP\n\nCreate connector:\n```\nCall MCP tool: harness_create\nParameters:\n  resource_type: \"connector\"\n  org_id: \"<organization>\"\n  project_id: \"<project>\"\n  body: <connector YAML>\n```\n\nTest connection:\n```\nCall MCP tool: harness_execute\nParameters:\n  resource_type: \"connector\"\n  action: \"test_connection\"\n  resource_id: \"<connector_identifier>\"\n  org_id: \"<organization>\"\n  project_id: \"<project>\"\n```\n\nBrowse available connector types:\n```\nCall MCP tool: harness_list\nParameters:\n  resource_type: \"connector_catalogue\"\n```\n\n## Examples\n\n- \"Create a GitHub connector with PAT\" - Github type with token auth\n- \"Set up AWS connector\" - Aws type with access key credentials\n- \"Create Docker Hub connector\" - DockerRegistry type\n- \"Connect to my K8s cluster\" - K8sCluster with service account\n- \"Create a Helm repo connector\" - HttpHelmRepo type for chart repositories\n- \"Set up Jira connector\" - Jira type for approval and ticketing integration\n- \"Create Nexus connector\" - Nexus type for artifact repository\n\n## Performance Notes\n\n- Always test the connection after creation using `harness_execute` with action `test_connection`.\n- Verify that referenced secrets exist before creating the connector.\n- For cloud connectors, confirm IAM permissions match the intended usage (read-only vs. read-write).\n\n## Troubleshooting\n\n### Connection Test Fails\n- Verify credentials/tokens are valid and not expired\n- Check network connectivity (delegate may need access)\n- Ensure proper IAM permissions for cloud connectors\n\n### Secret References\n- Secrets must exist before creating the connector\n- Use format: `account.secret_name` for account-level secrets\n- Use just `secret_name` for project-level secrets\n\n### Delegate Selectors\n- Use `delegateSelectors` to target connectors at specific delegates\n- Required when the service is only reachable from specific network locations\n- Match delegate tags exactly (case-sensitive)","tags":["create","connector","harness","skills","agent-skills","agents"],"capabilities":["skill","source-harness","skill-create-connector","topic-agent-skills","topic-agents"],"categories":["harness-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/harness/harness-skills/create-connector","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add harness/harness-skills","source_repo":"https://github.com/harness/harness-skills","install_from":"skills.sh"}},"qualityScore":"0.457","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 15 github stars · SKILL.md body (7,506 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:06:29.068Z","embedding":null,"createdAt":"2026-05-09T01:05:27.650Z","updatedAt":"2026-05-18T19:06:29.068Z","lastSeenAt":"2026-05-18T19:06:29.068Z","tsv":"'/charts':433 '/myorg':116,159,188 '/v2/':315 '1':47 '2':64,462 '3':77,460,465 '4':88 'access':227,345,622,727 'accesskeyref':225,343 'account':118,119,161,190,261,639,750 'account-level':749 'account.secret':746 'action':95,580,681 'admin':472,494,541 'alway':671 'anonym':408 'api':521 'apiaccess':136 'app':202 'applicationid':288 'approv':657 'artifact':443,667 'artifactori':476,480,482,485,496 'artifactory.example.com':488 'artifactoryserverurl':487 'auth':280,318,372,403,434,467,489,513,536,614 'authent':122,162,191 'avail':590 'aw':22,206,210,212,215,226,230,327,337,344,348,617,619 'azur':265,269,271,274,285,291,292,293 'azureenvironmenttyp':290 'bitbucket':174,178,180,183,201 'bitbucket.org':187 'bitbucket.org/myorg':186 'bodi':568 'brows':589 'ca':382 'cacertref':380 'call':555,571,593 'case':788 'case-sensit':787 'catalogu':602 'cert':383 'chart':648 'charts.example.com':402 'check':721 'client':286 'cloud':26,58,204,694,733 'cluster':63,357,635 'confirm':696 'connect':31,55,90,97,570,582,631,674,683,711,723 'connector':3,6,19,21,23,25,27,37,40,49,87,101,104,109,147,152,176,181,205,208,213,242,247,267,272,299,303,330,335,352,354,360,386,391,420,445,448,453,478,483,499,502,507,525,530,554,563,579,591,601,607,618,628,644,653,663,692,695,734,743,768 'contain':60 'creat':2,18,36,78,83,548,553,559,604,625,640,661,690,741 'create-connector':1 'create/test':11,43 'creation':676 'credenti':73,217,251,276,339,364,624 'credentials/tokens':715 'deleg':237,724,762,771,784 'delegateselector':233,415,765 'detail':76 'determin':51 'docker':24,300,305,626 'dockerhub':308,317,325 'dockerregistri':310,629 'dockerregistryurl':312 'ecr':328,332,334 'endpoint':75 'ensur':728 'exact':786 'exampl':603 'execut':93,575,679 'executeondeleg':143,238,263,296 'exist':688,739 'expir':720 'extern':34 'fail':713 'fals':144,239,264,297 'fill':71 'format':745 'gcp':240,244,246,249,259 'generat':4,38,65 'git':20,56,100 'github':102,106,108,111,132,141,606,610 'github.com':115 'github.com/myorg':114 'gitlab':145,149,151,154,172 'gitlab.com':158 'gitlab.com/myorg':157 'govern':295 'har':5,32,39,82,92,558,574,596,678 'helm':384,388,393,396,413,417,423,426,642 'helmrepourl':401,430 'http':124,164,193,387 'httphelmrepo':399,645 'hub':301,306,627 'iam':697,730 'id':565,567,584,586,588 'identifi':48,107,150,179,211,245,270,307,333,358,395,424,451,481,505,528 'index.docker.io':314 'index.docker.io/v2/':313 'inheritfromdeleg':221,255,368 'instruct':46 'integr':9,660 'intend':701 'irsa':222 'jira':500,504,506,509,520,652,654 'jiraurl':511 'k8s':356,359,377,381,634 'k8s-api.example.com':371 'k8scluster':362,636 'key':228,232,262,346,350,623 'kubernet':62,351 'level':751,760 'list':597 'locat':782 'manualconfig':219,220,253,254,278,341,366,367 'masterurl':370 'match':699,783 'may':725 'mcp':13,45,80,552,556,572,594 'must':738 'mycompany.atlassian.net':512 'mycompany.service-now.com':535 'myuser':130,170,199,323,411,439 'name':105,148,177,209,243,268,304,331,355,392,421,449,479,503,526,747,756 'need':726 'network':722,781 'nexus':446,450,452,455,474,662,664 'nexus.example.com':458 'nexusserverurl':457 'note':670 'oci':416,422,425,441 'ocihelmrepo':428 'oidcauthent':223,256 'option':234 'org':564,585 'paramet':560,576,598 'password':203,326,414,442,475,497,547 'passwordref':324,412,440,473,495,519,545 'pat':133,142,609 'perform':669 'permiss':698,731 'project':566,587,759 'project-level':758 'proper':729 'provid':57,59 'providertyp':316 'reachabl':778 'read':704,708 'read-on':703 'read-writ':707 'refer':135,736 'referenc':686 'registri':61,298 'registry.example.com':432 'registry.example.com/charts':431 'repo':121,389,394,397,418,643 'repositori':385,444,649,668 'requir':772 'resourc':85,561,577,583,599 'sa':378 'say':17 'secret':134,231,282,287,349,687,735,737,752,755,761 'secretkeyref':229,258,347 'secretref':284 'selector':763 'sensit':789 'servic':35,53,260,638,775 'serviceaccount':374 'serviceaccounttokenref':376 'servicenow':523,527,529,532 'servicenowurl':534 'set':615,650 'skill' 'skill-create-connector' 'snow':543,546 'source-harness' 'spec':112,125,128,139,155,165,168,184,194,197,216,224,250,257,275,279,283,311,321,338,342,363,369,375,400,409,429,437,456,470,486,492,510,516,533,539 'specif':236,770,780 'tag':785 'target':235,767 'templat':69 'tenantid':289 'test':89,96,550,569,581,672,682,712 'ticket':498,659 'token':138,173,379,522,613 'tokenref':131,140,171,200 'tool':557,573,595 'topic-agent-skills' 'topic-agents' 'troubleshoot':710 'type':50,86,110,117,123,126,137,153,160,163,166,182,189,192,195,214,218,248,252,273,277,281,309,319,336,340,361,365,373,398,404,427,435,454,468,484,490,508,514,531,537,562,578,592,600,611,620,630,646,655,665 'url':113,156,185 'us':294 'usag':702 'use':14,67,81,91,677,744,753,764 'user':16 'user@company.com':518 'usernam':129,169,198,322,410,438,471,493,517,540,544 'usernamepassword':320,405,406,436,469,491,515,538 'usernameref':542 'usernametoken':127,167,196 'valid':717 'verifi':99,684,714 'version':459 'via':12,44,79,551 'vs':706 'want':29 'write':709 'x':461,463,466 'yaml':7,41,66,103,146,175,207,241,266,302,329,353,390,419,447,477,501,524","prices":[{"id":"569fc40f-8493-453f-8521-efcd2d3c58d3","listingId":"6f0de943-88cd-4081-a15e-771363f6258d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"harness","category":"harness-skills","install_from":"skills.sh"},"createdAt":"2026-05-09T01:05:27.650Z"}],"sources":[{"listingId":"6f0de943-88cd-4081-a15e-771363f6258d","source":"github","sourceId":"harness/harness-skills/create-connector","sourceUrl":"https://github.com/harness/harness-skills/tree/main/skills/create-connector","isPrimary":false,"firstSeenAt":"2026-05-09T01:05:27.650Z","lastSeenAt":"2026-05-18T19:06:29.068Z"}],"details":{"listingId":"6f0de943-88cd-4081-a15e-771363f6258d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"harness","slug":"create-connector","github":{"repo":"harness/harness-skills","stars":15,"topics":["agent-skills","agents"],"license":"apache-2.0","html_url":"https://github.com/harness/harness-skills","pushed_at":"2026-05-13T01:28:28Z","description":"A collection of structured AI agent skills that   enable Claude Code, Cursor, GitHub Copilot, and   other AI coding assistants to create, operate,   debug, and govern Harness CI/CD workflows through   natural language.","skill_md_sha":"2e6f744cec673ff4a4be2ea471aa72106c6fec9f","skill_md_path":"skills/create-connector/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/harness/harness-skills/tree/main/skills/create-connector"},"layout":"multi","source":"github","category":"harness-skills","frontmatter":{"name":"create-connector","license":"Apache-2.0","description":"Generate Harness Connector YAML for integrations and create/test via MCP. Use when user says \"create connector\", \"git connector\", \"aws connector\", \"docker connector\", \"cloud connector\", or wants to connect Harness to external services.","compatibility":"Requires Harness MCP v2 server (harness-mcp-v2)"},"skills_sh_url":"https://skills.sh/harness/harness-skills/create-connector"},"updatedAt":"2026-05-18T19:06:29.068Z"}}