diff --git a/.changeset/web-connectors-form-and-dialog-corners.md b/.changeset/web-connectors-form-and-dialog-corners.md
new file mode 100644
index 00000000..de9bd004
--- /dev/null
+++ b/.changeset/web-connectors-form-and-dialog-corners.md
@@ -0,0 +1,5 @@
+---
+"@pymodel/pythinker-code": patch
+---
+
+Lay the MCP server form out in even rows instead of a ragged grid, and stop the provider manager header and footer from squaring off the dialog corners.
diff --git a/apps/pythinker-web/src/components/ProviderManager.vue b/apps/pythinker-web/src/components/ProviderManager.vue
index e74b2752..2f26e8fa 100644
--- a/apps/pythinker-web/src/components/ProviderManager.vue
+++ b/apps/pythinker-web/src/components/ProviderManager.vue
@@ -353,6 +353,9 @@ function statusLabel(status: AppProvider['status']): string {
max-height: calc(100vh - 80px);
display: flex;
flex-direction: column;
+ /* The header, the footer, and the list scrollbar all paint to the dialog
+ edge, so they square off the rounded corners without this. */
+ overflow: hidden;
font-family: var(--mono);
box-shadow: 0 8px 32px rgba(0,0,0,0.14);
}
@@ -578,7 +581,6 @@ function statusLabel(status: AppProvider['status']): string {
color: var(--faint);
border-top: 1px solid var(--line2);
background: var(--panel);
- border-radius: 0 0 4px 4px;
}
@media (max-width: 640px) {
diff --git a/apps/pythinker-web/src/components/settings/McpServerForm.vue b/apps/pythinker-web/src/components/settings/McpServerForm.vue
index 5ec4168a..1df7b603 100644
--- a/apps/pythinker-web/src/components/settings/McpServerForm.vue
+++ b/apps/pythinker-web/src/components/settings/McpServerForm.vue
@@ -99,23 +99,23 @@ function submit(): void {
-